Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Zeilen unter Bedingung löschen

Forumthread: VBA: Zeilen unter Bedingung löschen

VBA: Zeilen unter Bedingung löschen
10.08.2007 22:42:00
Markus
Guten Abend zusammen!
In meiner Excel-Tabelle stehen in Spalte A verschiedene Auftragsnummern, in weiteren Spalten zugehörige Daten. Die Anzahl der Auftragsnummern (und damit der Zeilen) unterscheidet sich von Monat zu Monat.
Da es sich um einen SAP-Import handelt, wiederholen sich Kopfzeilen und andere Textfelder dummerweise in der Liste. Auch kommen immer wieder Leerzeilen oder leere Zellen in Spalte A vor.
Mit einem VBA-Code möchte ich nun die Tabelle davon bereinigen. Konkret heißt das, es sollen alle Zeilen gelöscht werden, in denen in Spalte A keine 10-stellige (Auftrags-)Nummer steht.
Es müssen also
1. alle Leerzeilen gelöscht werden
2. alle Zeilen gelöscht werden, wenn Zelle in Spalte A leer oder mit Text belegt ist.
Kann mir bei diesem Problem jemand helfen? Ich habe schon versucht, verschiede VBA-Codes aus Foren abzuändern bzw. anzupassen. Dank meiner mangelnden VBA-Kenntnisse leider erfolglos... Ich freue mich daher über Hilfe!!
Viele Grüße
Markus

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Zeilen unter Bedingung löschen
10.08.2007 23:00:00
fcs
Hallo Markus,
hier mein Vorschlag zum Löschen der überflüssigen Zeilen
Gruß
Franz

Sub SAP_Daten_Bereinigen()
'Alle Zeilen mit Text oder leere in Spalte A löschen
Dim wks As Worksheet, lngLast As Long, lngZeile As Long
Set wks = ActiveSheet
'Letzte Zeile im Blatt ermitteln
lngLast = wks.Cells.SpecialCells(xlCellTypeLastCell).Row
For lngZeile = lngLast To 2 Step -1
If IsEmpty(wks.Cells(lngZeile, 1)) Or Val(wks.Cells(lngZeile, 1)) = 0 Then
'Alternativ könnte auch die folgende Zeile funktionieren
'      If IsEmpty(wks.Cells(lngZeile, 1)) Or IsText(wks.Cells(lngZeile, 1)) Then
wks.Rows(lngZeile).Delete shift:=xlShiftUp
End If
Next
End Sub


Anzeige
AW: VBA: Zeilen unter Bedingung löschen
10.08.2007 23:19:39
Markus
Hallo Franz,
vielen Dank für Deine schnelle Antwort. Gerade habe ich Deinen Vorschlag probiert. Es funktioniert einwandfrei und ich erhalte das gewünschte Ergebnis!! Traumhaft!
(Bei der Alternativzeile wird ein Fehler bei "istext" angezeigt. Aber das nur nebenbei zur Information.)
Also, nochmals vielen Dank. Das war mir eine echte Hilfe!
Grüße
Markus

Anzeige
AW: VBA: Zeilen unter Bedingung löschen
10.08.2007 23:43:00
fcs
Hallo Markus,
ich hatte die Alternativ-Zeile nicht gestetestet.
Die korrekte Syntax ist

If IsEmpty(wks.Cells(lngZeile, 1)) Or Application.WorksheetFunction.IsText(wks.Cells( _
lngZeile, 1)) Then


Hatte nicht daran gedacht, dass IsText nur als Tabellenfunktion zur Verfügung steht.
Gruß
Franz

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige