Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereinigung mehrerer Spalten

Forumthread: AW: Bereinigung mehrerer Spalten, Korrektur

AW: Bereinigung mehrerer Spalten, Korrektur
23.08.2007 09:27:00
Rudi
Hallo,
der erste Code geht nicht. Sorry.

Sub tt()
Dim iColumn As Integer
For iColumn = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
Columns(iColumn).SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
Next iColumn
End Sub


Gru?
Rudi
Eine Kuh macht Muh, viele K?he machen M?he

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das sollte doch auch...
23.08.2007 09:29:09
{Boris}
Hi Rudi,
...ohne die Spaltenschleife gehen:

Sub til()
Cells.SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
End Sub


Gr??e Boris

AW: Das sollte doch auch... Arrrgghh
23.08.2007 09:39:04
Rudi
Hallo Boris,
nat?rlich.
Eigentlich ist nicht mal VBA erforderlich.
Gru?
Rudi
Eine Kuh macht Muh, viele K?he machen M?he

Anzeige
Klar - F5>Inhalte>Leerzellen>Strg - >Enter __oT
23.08.2007 09:40:25
{Boris}
Gr??e Boris

AW: Bereinigung mehrerer Spalten
23.08.2007 09:32:05
Peter
Hallo Jan,
ich hoffe, das nachfolgende Makro macht das, was du m?chtest.


Option Explicit
Sub Bereinigen()
Dim lZeile   As Long
Dim iSpalte  As Integer
   Application.ScreenUpdating = False
   With Worksheets("Tabelle1")  ' <=== Tabellenblattnamen ggf. anpassen !!!
      For iSpalte = 1 To ActiveSheet.UsedRange.Rows.SpecialCells(xlCellTypeLastCell).Column
         For lZeile = 1 To .Cells(65536, iSpalte).End(xlUp).Row
            If .Cells(lZeile, iSpalte).Value = "" Then
               .Cells(lZeile, iSpalte).Delete Shift:=xlUp
             End If
         Next lZeile
      Next iSpalte
   End With
   Application.ScreenUpdating = True
End Sub 


Gru? Peter

Anzeige
AW: Korrektur
23.08.2007 09:37:55
Peter
Hallo Jan,
mit dieser Korrektur geht es besser:
For lZeile = .Cells(65536, iSpalte).End(xlUp).Row To 1 Step - 1
Gru? Peter

Allgemeiner Tipp...
23.08.2007 09:33:19
{Boris}
Hi Jan,
...im Zusammenhang mit dem L?schen von Zellen / Zeilen / Spalten (hier geht es viel einfacher so, wie von Rudi geschrieben):
Immer r?ckwarts durchlaufen:
For x = LetzteZeile To 1 Step - 1
Dann brauchst Du nie die aktuelle Postition sowie das Ende anpassen wie hier mit
lZeile = lZeile - 1
ende = ende + 1
Gr??e Boris

Anzeige
AW: Allgemeiner Tipp...
23.08.2007 09:40:09
Jan
Hallo zusammen,
es klappt, vielen Dank f?r die prompte und Kompetente Hilfe!!
Viele Gr??e,
Jan
AW: Bereinigung mehrerer Spalten, Korrektur
23.08.2007 09:27:00
Rudi
Hallo,
der erste Code geht nicht. Sorry.

Sub tt()
Dim iColumn As Integer
For iColumn = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
Columns(iColumn).SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
Next iColumn
End Sub


Gru?
Rudi
Eine Kuh macht Muh, viele K?he machen M?he

Anzeige
Das sollte doch auch...
23.08.2007 09:29:09
{Boris}
Hi Rudi,
...ohne die Spaltenschleife gehen:

Sub til()
Cells.SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
End Sub


Gr??e Boris

AW: Das sollte doch auch... Arrrgghh
23.08.2007 09:39:04
Rudi
Hallo Boris,
nat?rlich.
Eigentlich ist nicht mal VBA erforderlich.
Gru?
Rudi
Eine Kuh macht Muh, viele K?he machen M?he

Anzeige
Klar - F5>Inhalte>Leerzellen>Strg - >Enter __oT
23.08.2007 09:40:25
{Boris}
Gr??e Boris

AW: Bereinigung mehrerer Spalten
23.08.2007 09:32:05
Peter
Hallo Jan,
ich hoffe, das nachfolgende Makro macht das, was du m?chtest.


Option Explicit
Sub Bereinigen()
Dim lZeile   As Long
Dim iSpalte  As Integer
   Application.ScreenUpdating = False
   With Worksheets("Tabelle1")  ' <=== Tabellenblattnamen ggf. anpassen !!!
      For iSpalte = 1 To ActiveSheet.UsedRange.Rows.SpecialCells(xlCellTypeLastCell).Column
         For lZeile = 1 To .Cells(65536, iSpalte).End(xlUp).Row
            If .Cells(lZeile, iSpalte).Value = "" Then
               .Cells(lZeile, iSpalte).Delete Shift:=xlUp
             End If
         Next lZeile
      Next iSpalte
   End With
   Application.ScreenUpdating = True
End Sub 


Gru? Peter

Anzeige
AW: Korrektur
23.08.2007 09:37:55
Peter
Hallo Jan,
mit dieser Korrektur geht es besser:
For lZeile = .Cells(65536, iSpalte).End(xlUp).Row To 1 Step - 1
Gru? Peter

Allgemeiner Tipp...
23.08.2007 09:33:19
{Boris}
Hi Jan,
...im Zusammenhang mit dem L?schen von Zellen / Zeilen / Spalten (hier geht es viel einfacher so, wie von Rudi geschrieben):
Immer r?ckwarts durchlaufen:
For x = LetzteZeile To 1 Step - 1
Dann brauchst Du nie die aktuelle Postition sowie das Ende anpassen wie hier mit
lZeile = lZeile - 1
ende = ende + 1
Gr??e Boris

Anzeige
AW: Allgemeiner Tipp...
23.08.2007 09:40:09
Jan
Hallo zusammen,
es klappt, vielen Dank f?r die prompte und Kompetente Hilfe!!
Viele Gr??e,
Jan
;

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