Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1564to1568
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Werte löschen wenn ungleich Referenzwert

VBA Werte löschen wenn ungleich Referenzwert
17.06.2017 21:04:13
Stephan
Hallo Forum!
Das beiliegende Makro soll die Zellen in den Spalten B,C,D löschen/leeren, wenn sie nicht mit dem Wert aus Spalte A beginnen. Ausgangssituation:
A A12345 A56789 B12312
B B12312 E12312 F12314
C B98765 C78765 B12312
1 123123 213123 198667
2 212352 B12356 G13779
3 F12314 312312 123555
Gewünschtes Ergebnis:
A A12345 A56789
B B12312
C C78765
1 123123 198667
2 212352
3 312312
Bislang funktioniert es allerdings nur bei denjenigen Zeilen, die mit einem Buchstaben anfangen (Zeilen 1 bis 3), nicht jedoch bei solchen mit einer Zahl (Zeilen 4 bis 6). Hat jemand eine Ahnung, warum das der Fall ist?
Darüber hinaus ist es mir bislang nur gelungen, die Zellen über .ClearContents zu leeren, nicht aber sie über .Delete shift:=xlToLeft nach Links zu verschieben. Hat jemand eine Idee, wie man letzteres umsetzen könnte?
Vielen Dank für jeden Vorschlag!
Sub Loeschen()
Dim rCheck As Range, i As Integer, iCol As Integer
Set rCheck = Range("A1")
iCol = 5
Do While rCheck.Value  ""
For i = 1 To iCol
If Left(Cells(rCheck.Row, i + 1).Value, 1)  rCheck.Value Then
Cells(rCheck.Row, i + 1).ClearContent
'Cells(rCheck.Row, i + 1).Delete shift:=xlToLeft
End If
Next i
Set rCheck = rCheck.Offset(1, 0)
Loop
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Werte löschen wenn ungleich Referenzwert
17.06.2017 23:52:26
Daniel
HI
beim Vergleich mit "=" ist für Excel eine Zahl immer etwas anderes als ein Text.
Das gilt auch dann, wenn die Zahl im Zehnersystem zufälligerweise genauso aussieht wie der Text.
dh die Zahl 1 ist für Excel nicht das gleiche wie der Text "1". (Zahl vs. Ziffer)
damit der Code funktionert, müsstest du die Zahl aus der ersten Zelle in einen Text wandeln.
Dazu gibt es mehrere Möglichkeiten, hier mal drei davon:
verwende die Funktion CStr():
If Left(Cells(rCheck.Row, i + 1).Value, 1)  CStr(rCheck.Value) Then
frage den Zellwert schon als Text ab:
If Left(Cells(rCheck.Row, i + 1).Value, 1)  rCheck.Text Then
hänge den Text Leestring an den Wert an:
If Left(Cells(rCheck.Row, i + 1).Value, 1)  rCheck.Value & "" Then
Gruß Daniel
Anzeige
AW: VBA Werte löschen wenn ungleich Referenzwert
18.06.2017 01:45:54
Stephan
Hey Daniel, großartig! Vielen Dank für Deine Zeit :)

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige