Registriert seit: 26.09.2018
Version(en): Office 2016
Hallo,
wohl für die Meisten ein kleines Problem ...
Ich habe folgende Schleife konstruiert:
Dim i As Variant
With ActiveSheet
For i = 217 To 2 Step -1
If Val(.Cells(i, 22).Value) = "0." Then .Rows(i).Delete
Next
End With
Funktioniert soweit, nur werden Zelleinträge mit 0 und Nachkommastellen automatisch abgerundet und somit auch mit gelöscht.
Wie lautet bitte der genaue Befehl?
Danke und lieben Gruss … Elmar
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Da Du mit Val eine Zahl wiedergibst, solltest Du auch mit einer Zahl vergleichen, also mit 0 und nicht mit "0.".
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 26.09.2018
Version(en): Office 2016
Herzlichen Dank für deine Rückmeldung,
deine Überlegung ist sicher richtig und habe ich auch schon ausprobiert.
Trotzdem befinden sich in meiner Tabelle zwei Beträge < 1 (0,10 und 0,90) und die werden mit gelöscht.
Das sollte so nicht sein.
Trotzdem Danke … vielleicht hast noch eine andere Idee.
lg. Elmar
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin!
Warum filterst Du Spalte V nicht nach 0 und löscht die sichtbaren Zeilen?
Dürfte auch erheblich schneller als die Schleife sein.
Ansonsten zeige mal die Datei.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
mit
If Val(.Cells(i, 22).Value) = "0" Then .Rows(i).Delete
sollten nur 0-Werte gelöscht werden. Es gibt eventuell einen Stolperstein mit dem Dezimaltrennzeichen.
z.B.
0,11 liefert bei Val 0
0.11 liefert bei Val 0,11
ich würde da eventuell erst mal auf isnumber prüfen und wenn ja, direkt vergleichen.
Ist es Text, dann ggf. was in der Art val(replace(.cells(…),",","."))
if isnumber(.Cells(…)) then
if .cells(…)=0 then
else
if val(replace(.cells(…),",",".")) = 0 then ...
end if
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hüstel!
IsNumeric()
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• schauan
Registriert seit: 26.09.2018
Version(en): Office 2016
Hallo und danke ...
so habe ich's hinbekommen:
With ActiveSheet
For i = 217 To 2 Step -1
If Val(Replace(.Cells(i, 22), ",", ".")) = 0 Then
If Val(.Cells(i, 22).Value) = 0 Then .Rows(i).Delete
End If
Next
End With
Herzlichen Dank nochmals … hast mir sehr geholfen.
lg. Elmar