Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suchen und Ersetzen mit Makro möglich?
#21
Danke für deine Hilfe, aber sobald ich die originalen Daten in die Exceldatei kopiere, funktioniert es ab dem ersten leeren Feld nicht mehr. Huh


Angehängte Dateien
.xlsm   LV Beispiel (1).xlsm (Größe: 293,09 KB / Downloads: 6)
Antworten Top
#22
Hallo,

markiere die Zellen und nimm folgendes Makro:
Code:
Sub EinheitenZuStunden()
    Dim rngEinheiten As Range
    Dim rngStunden As Range
    Dim varEinheten As Variant
    Set rngStunden = Worksheets("Stunden").Range("A1").CurrentRegion
    Set rngEinheiten = ActiveSheet.Range("A1").CurrentRegion.Columns(6)
    On Error Resume Next
    For Each rngEinheiten In Selection.Cells
    'For Each rngEinheiten In rngEinheiten.Offset(1).Resize(rngEinheiten.Rows.Count - 1).Cells
       If InStr(1, rngEinheiten.Text, ":") = 0 And Len(rngEinheiten.Text) Then
           varEinheten = Split(rngEinheiten, "-")
           rngEinheiten.Value = Format(Application.VLookup(CLng(varEinheten(0)), rngStunden, 2, 0), "hh:nn") & "-" & _
                                Format(Application.VLookup(CLng(varEinheten(UBound(varEinheten))), rngStunden, 3, 0), "hh:nn")
       End If
    Next rngEinheiten
    On Error GoTo 0
End Sub

Gruß Uwe
Antworten Top
#23
Dieses Makro wandelt die Werte bis zur Zeile 6 richtig um. Danach schmiert Excel ab. Ich habe es mit einer Handvoll Zahlen getestet und Excel ein paar Minuten laufen lassen. Leider hängt es sich, wie gesagt, auf.
Antworten Top
#24
Hallo,

ich habe da auch mal etwas gebastelt.
Damit es Funktioniert habe ich die Tabelle Stunden umgebaut.

Die Spalte mit den Zeiten ist als Text formatiert.

PHP-Code:
Einheit    Zeit
1    07
:45-08:30
2    08
:35-09:20
3    09
:25-11:15
4    11
:20-12:55
5    13
:00-14:35
6    13
:50-15:25
7    14
:40-16:30
8    15
:45-16:30
9    16
:35-18:10
10    17
:25-19:00
11    14
:40-18:10
12    17
:20 


und folgenden Code in ein allgemeines Modul einfügen:


Code:
Sub SuchenErsetzen()
   Dim i As Long
   Dim lngZ As Long
   Dim lngEinheit As Long
   Dim ersatzTab As Range
   Dim varErgebnis As Variant
   
   Set ersatzTab = Sheets("Stunden").Range("A2:C13")

   With Sheets("Tabelle1")
       .Columns(6).NumberFormat = "General"
       .Columns(6).NumberFormat = "@"
       lngZ = .Cells(.Rows.Count, 6).End(xlUp).Row
       For i = 2 To lngZ
           If Left(.Cells(i, 6).Value, 5) Like "*#[-]#*" Or .Cells(i, 6).Value Like "#" Or .Cells(i, 6).Value Like "##" Then
               lngEinheit = Split(.Cells(i, 6), "-")(0)
               varErgebnis = Application.Match(lngEinheit, ersatzTab.Columns(1), 0)
               If IsNumeric(varErgebnis) Then
                   .Cells(i, 6).Value = ersatzTab.Cells(varErgebnis, 2).Value
               End If
           End If
       Next i
   End With
End Sub
Gruß Atilla
Antworten Top
#25
Hallo Atilla,

wäre es bitte möglich, dass du mir die Datei schickst?
Ich weiß leider nicht, was mit "in ein allgemeines Modul einfügen" gemeint ist..
Danke.
Antworten Top
#26
Hallo

unten Deine Datei:


.xlsm   Kopie von LV Beispiel (ati-1).xlsm (Größe: 299,01 KB / Downloads: 4)
Gruß Atilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste