Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
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

Spalte löschen, wenn erste Ziffer ein

Spalte löschen, wenn erste Ziffer ein
21.08.2023 10:03:57
AndreasMoony
Moin Ihr VBA-Götter...

ich brauche wie in Betreff gesagt das Makro, das die Zeilen einer Liste löscht, in denen in Spalte 2 das erste Zeichen ein "T" ist.

Habe versucht:

Public Sub SZ_5()
'** Ermittlung der letzten Zeile in Spalte A
lz = Cells(Rows.Count, 2).End(xlUp).Rows.Row

'** Durchlauf aller Zeilen
For T = lz To 2 Step -1 'Zählung rückwärts bis Zeile 2
'Abfragen, ob in der ersten Spalte der Buchstabe "T" steht
If Cells(T, 2).Value = "T" Then
Rows(T).Delete Shift:=xlUp
End If
Next T
End Sub

Ergebnis: Er löscht nur die Zeilen in denen in der Zelle ausschließlich "T" steht - keine Zeichenfolgen. Auch "T*" ergibt keine Trffer (er löscht explicit T*, erkennt den Platzhalter gar nicht).

Habe dann versucht:

Public Sub SZ_3_neu()
'** Ermittlung der letzten Zeile in Spalte A
lz = Cells(Rows.Count, 2).End(xlUp).Rows.Row

'** Durchlauf aller Zeilen
For P = lz To 2 Step -1 'Zählung rückwärts bis Zeile 2
'Abfragen, ob in der zweiten Spalte der Buchstabe "T" steht
If InStr(Cells(P, 2).Value, "T") Then
Rows(P).Delete Shift:=xlUp
End If
Next P
End Sub

Ergebnis: Er löscht die Zeilen, bei denen in der Zelle irgendwo ein "T" steht...
Ich habe verschiedene Kombis mit der Funktion LINKS versucht...
Bekomme es nicht hin.

Kann jemand die richtige Lösung zeigen ???????????????

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte löschen, wenn erste Ziffer ein
21.08.2023 10:06:55
AndreasMoony
Sorry, der Titel ist irreführend...
ZEILE Löschen, wenn in der Spalte 2 ein "T" an erster Stelle steht.
AW: Spalte löschen, wenn erste Ziffer ein
21.08.2023 16:00:18
daniel
Hi

zum Löschen per Schleife wurde dir ja schon die lösung gezeigt.
eine altnative zu IF Left(Cells(x, 2).value, 1) = "T" Then
wäre IF Cells(x, 2).value like "T*" Then
LIKE ist ein Zellvergleich, der aber variabler ist als "=", weil er auch Jokerzeichen wie *, ? und # verarbeiten kann und noch ein bisschen mehr)

noch eine Codevariante, die man nehmen kann wenn es feste Werte sind,
Diese Variante arbeitet ohne Schleife, was manchmal schneller ist und angehnehmer beim Testen im Einzelstepmodus
with Columns(2)

if worksheetfunction.Countif(.Cells, "T*") > 0 then
.Replace "T*", true, xlwhole, matchcase:=true
.SpecialCells(xlcelltypeconstants, 4).EntireRow.Delete
end if
end with


gruß Daniel
Anzeige
AW: Spalte löschen, wenn erste Ziffer ein
22.08.2023 07:22:13
AndreasMoony
Super, sehr schöne Lösung. Macht Spaß, hier immer mehr dazuzulernen...
AW: Spalte löschen, wenn erste Ziffer ein
21.08.2023 10:07:35
Alwin Weisangler
If left(Cells(T, 2).Value,1) = "T" Then

Gruß Uwe
AW: Spalte löschen, wenn erste Ziffer ein
21.08.2023 10:16:31
AndreasMoony
Phantastsich.
dermaßen schnell und funktioniert super.
Auf diese Kombi mit der LINKS Funktion bin ich nicht gekommen...
Hatte immer sowas wie

If left(Cells(T, 2);1).Value = "T" Then

oder so ähnlich probiert....

Dankeschööön!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige