Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
892to896
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
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige