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

Bereinigung mehrerer Spalten

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

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

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

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
Anzeige
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

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

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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige