Registriert seit: 22.04.2016
Version(en): 2016
22.02.2017, 11:38
(Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2017, 11:48 von joshua.)
Hallo Community! Ich bräuchte eure Hilfe beim Like-Operator. Ich habe bereits in meinen Büchern geschaut, finde jedoch keine Lösung bzw. meinen Fehler. Ich möchte, dass in Spalte I jeder Eintrag gelöscht wird bzw. value "", wenn dort etwas anderes als like "nichts" steht. Dieses "nichts" ist dabei manchmal groß oder klein geschrieben. Wo genau liegt nun mein Fehler? Code: Sub DeleteAllExceptNichts()
Dim Zeile As Long Dim ZeileMax As Long Dim Text As Variant With tblExport Text = "*nichts*" ZeileMax = .UsedRange.Rows.Count For Zeile = 2 To ZeileMax If .Range("I" & Zeile).Value Like Text Then .Range("I" & Zeile) = "" End If Next Zeile End With
End Sub
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
22.02.2017, 11:46
(Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2017, 11:46 von Der Steuerfuzzi.)
Hallo,
ich rate mal. Setz doch einfach ein NOT nach IF:
If not .Range("I" & Zeile).Value Like Text Then
Gruß Michael
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo, hier würde Replace effektiver sein, denke ich: Code: Sub test() tblExport.UsedRange.Replace What:="nichts", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End Sub
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• joshua
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
und ergänze ein lcase(), um sowohl Groß- als auch Kleinschreibung zu erfassen.
mfg
Registriert seit: 22.04.2016
Version(en): 2016
22.02.2017, 12:11
(Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2017, 12:11 von joshua.)
(22.02.2017, 11:47)atilla schrieb: Hallo,
hier würde Replace effektiver sein, denke ich:
Code: Sub test() tblExport.UsedRange.Replace What:="nichts", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End Sub
Vielen Dank, komme leider nicht ganzu so weiter. Wo liegt mein Fehler? Code: Sub test() Dim ZeileMax As Long Dim Zeile As Long With tblExport ZeileMax = .UsedRange.Rows.Count For Zeile = 2 To ZeileMax tblExport.UsedRange.Cells(Zeile, 9).Replace What:="nichts", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False Next End With End Sub
Diese Prozedur löscht somit alle "nichts"
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo,
da brauchst Du keine Schleife. Der eingestellte Code ersetzt in Einem im benutzen Bereich.
Führ ihn einfach so aus, wie ich es eingestellt habe.
Gruß Atilla
Registriert seit: 22.04.2016
Version(en): 2016
(22.02.2017, 12:11)atilla schrieb: Hallo,
da brauchst Du keine Schleife. Der eingestellte Code ersetzt in Einem im benutzen Bereich.
Führ ihn einfach so aus, wie ich es eingestellt habe. Aber ich muss ja irgendwie die entsprechende Spalte anwählen, oder nicht? Und wenn dort "nichts"(ob groß oder klein geschrieben) steht, soll nichts passieren. Andern falls soll die Zelle "" gestellt werden.
Registriert seit: 22.04.2016
Version(en): 2016
(22.02.2017, 11:46)Der Steuerfuzzi schrieb: Hallo,
ich rate mal. Setz doch einfach ein NOT nach IF:
If not .Range("I" & Zeile).Value Like Text Then Code: Dim Zeile As Long Dim ZeileMax As Long Dim Text As Variant With tblExport ZeileMax = .UsedRange.Rows.Count Text = "nichts" For Zeile = 2 To ZeileMax If Not .Range("I" & Zeile).Value Like Text Then .Range("I" & Zeile) = "" End If Next Zeile End With
Das funktioniert leider auch nicht. Groß- und Kleinschreibung wird nicht beachte. Wie bekomme ich diesen lcase da rein?
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo,
aah, sorry ich habe es genau anders herum verstanden.
Muss ich noch einmal drüber schauen. In der Zwischenzeit kannst Du Dich ja mit den anderen Vorschlägen auseinandersetzen.
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• joshua
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo, dann würde ich es so versuchen: Code: Sub DeleteAllExceptNichts()
Dim Zeile As Long Dim ZeileMax As Long Dim Text As Variant With tblExport Text = "*nichts*" ZeileMax = .UsedRange.Rows.Count For Zeile = 2 To ZeileMax If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 0 Then .Range("I" & Zeile) = "" End If Next Zeile End With
End Sub
Gruß Atilla
|