Registriert seit: 22.04.2016
Version(en): 2016
22.02.2017, 10:38
(Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2017, 10: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, 10:46
(Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2017, 10: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, 11:11
(Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2017, 11:11 von joshua.)
(22.02.2017, 10: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, 11: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, 10: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
|