Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
524to528
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
524to528
524to528
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

wenn links Leerzeichen, Zeile löschen

wenn links Leerzeichen, Zeile löschen
03.12.2004 13:19:26
Bäebel
Hallo,
kann mir bitte jemand helfen?
Ich möchte ein Makro, das die Zeilen komplett löscht, wenn in Spalte xY links Leerzeichen stehen.
vielen Dank und ein schönes WE
https://www.herber.de/bbs/user/14296.xls

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn links Leerzeichen, Zeile löschen
Galenzo
Hallo,
das:
Dim c As Range
For Each c In Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
If Left(c, 1) = " " Then c.EntireRow.Delete
Next
Viel Erfolg und ein Schönes Wochenende !
AW: wenn links Leerzeichen, Zeile löschen
Bärbel
Sorry, ich kriegs nicht hin.
Die Zellen mit den Leerzeichen beginnen ungefähr in Zeile 500, Spalte G.
AW: wenn links Leerzeichen, Zeile löschen
Galenzo
jaja - für Spalt G änderst du die 1 in 7
aus:
For Each c In Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
wird:
For Each c In Range(Cells(1, 7), Cells(Rows.Count, 7).End(xlUp))
oder auch:
For Each c In Range(Cells(1, "G"), Cells(Rows.Count, "G").End(xlUp))
Ich hoffe, diesmal klappt's.
mfg
Anzeige
AW: wenn links Leerzeichen, Zeile löschen
Bärbel
Geht leider auch nicht!?
Geht leider auch nicht!? super antwort mt.
th.heinrich
hallo Bärbel,
sorry, dass ich mich einmische, aber Deine Fehlerbeschreibung ist genial ;-))
gruss thomas
AW: Geht leider auch nicht!? super antwort mt.
Galenzo
Guten Abend Bärbel,
eine etwas ausführlichere Beschreibung der Ursachen ist eine Voraussetzung für weitere Hilfestellung....

Sub Bestimmte_Zeilen_Löschen()
Dim c As Range
For Each c In Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
If Left(c, 1) = " " Then c.EntireRow.Delete
Next
End Sub

Dieses Makro durchläuft alle Zellen in Spalte A, von ganz oben (Zeile 1) bis ganz unten, und zwar bis dorthin, ab wo nix mehr in einer Zelle der Spalte A drinsteht.
So durchläuft das Makro nun Zeile für Zeile und "schaut" dabei nach, ob der Text aus Spalte A etwa mit einem Leerzeichen (" ") anfängt - wenn ja wird diese Zeile komplett gelöscht. Und weiter gehts - mit der nächsten Zeile. usw. usw. bis zum Ende runter.
Was soll denn daran nun nicht klappen?
Ein Makro aufzeichnen kannst du?
Zeichne ein Makro auf und gib ihm eine Tastaturkombi.
Dann ersetzt du im VBA-Teil (ALT+F11) den Inhalt, den Text des Makros urch die obigen Anweisungen.
Startest du das Makro und schaust ihm bei der Arbeit zu.
Ich wünsche dir viel erfolg - und verabschiede mich ins Wochenende...
mfg - Galenzo
Anzeige
AW: Geht leider nicht
Bärbel
Hallo, erstmal vielen Dank an Euch beide.
Natürlich habt Ihr recht, ich muss schon sagen, was nicht funktioniert...
Also:

Sub Bestimmte_Zeilen_Löschen()
Dim c As Range
For Each c In Range(Cells(1, 7), Cells(Rows.Count, 7).End(xlUp))
If Left(c, 1) = " " Then c.EntireRow.Delete
Next
End Sub

ich habe die 7 für Spalte "G" ersetzt.
Das Makro löscht immer nur ein paar Zeilen, so dass ich mehrmals klicken muss, bis alle " " Zeilen gelöscht sind.
Sorry.. versuche mal das hier:
Galenzo
Hallo,
'tschuldig, ich habe das Makro selbst nicht getestet, sondern so frei Hand geschrieben.
Wie peinlich :-(
Hab' es nun mal ausprobiert - es ergibt tatsächlich das von dir beschriebene Ergebnis.
Du hast also nix falsch gemacht - der Fehler liegt bei mir. Ich werd' wohl einen logischen Fehler in der Schleifenkonstruktion haben.
Ich denke nochmal drüber nach....
Vorerst hilft dir dieses Makro weiter:

Private Sub Bestimmte_Zeilen_Löschen()
Dim c As Range, i As Integer, iRows As Integer
iRows = Cells(Rows.Count, 7).End(xlUp).Row + 1
For i = 1 To iRows
If Left(Cells(i, 7), 1) = " " Then Rows(i).EntireRow.Delete
Next
End Sub

Viel Erfolg!
Anzeige
AW: Sorry.. versuche mal das hier:
Bärbel
...das ist furchtbar nett von Dir. Das neue Makro liefert bei mir das gleiche Ergebnis wie das alte.
Gruss Bärbel

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige