Hallo Holger,
funktioniert - vielen Dank!
Gruß
Holger schrieb am 24.08.2009 10:33:55:
Hallo BGast,
eine leere Zelle sollte eigentlich mit dem "If Cells(i, 2) <> "" Then " bereits abgefangen werden. Es kann aber sein, dass irgend ein Restwert enthalten ist oder die Zelle nummerisch war. Ersetze die Zeile durch
If Cstr(Cells(i, 2)) <> "" Then Cells(i, 3) = CDbl(Mid(Cells(i, 2), InStrRev(Trim(Cells(i, 2)), " ") + 1))
CStr macht aus fast allem einen String.
Gruß
Holger
BGast schrieb am 24.08.2009 09:02:24:
Hallo Holger,
vielen Dank für deine Hilfe!
Das Makro funktioniert einwandfrei.
Allerdings habe ich ein Problem, wenn in der Spalte B ein Eintrag fehlt (was vorkommen kann).
In diesem Fall sollte das Marko weiter laufen. (momentan Runtime-Error 13 - Type Mismatch) bei Cells(i, 3) = CDbl(Mid(Cells(i, 2), InStrRev(Trim(Cells(i, 2)), " ") + 1))
Gibt es einen kleinen "Zusatz", der eine leere Zelle übergeht?
Gruß
Holger schrieb am 21.08.2009 16:32:28:
Hallo BGast,
ich gehe davon aus, dass in der deiner Wertezeile ein Schreibfehler vorliegt (3,5?), die Spalte Comment die Spalte B und Zahl die Spalte C ist sowie dass die Werte in Zeile 2 beginnen. Die letzten 3 ließen sich auch schnell im Makro ändern.
Sub zahlen_extrahieren()
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 2) <> "" Then Cells(i, 3) = CDbl(Mid(Cells(i, 2), InStrRev(Trim(Cells(i, 2)), " ") + 1))
Next i
End Sub
Gruß
Holger
BGast schrieb am 21.08.2009 13:57:20:
Hallo Zusammen,
ich stehe vor folgendem Problem:
Auf Grund der großen Datenmenge brauche ich ein Makro welches aus der Spalte Comment die Kommazahlen in die Spalte Zahl überträgt
ID Comment Zahl
12345 Time 200809 xy 3,0 3,5
13456 Time 200809 xyz 1,5 1,5
15677 Time 200809 xy 0,2 0,2
15798 Time 190809 xy 0,5 0,5
16864 Time 200809 xyz 0,5 0,5
18311
15929 Time 190908 xy 1,0 1
Ich danke für eure Hilfe schon im Voraus |