Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1040to1044
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
Inhaltsverzeichnis

Spalten löschen

Spalten löschen
19.01.2009 12:08:00
Roland
Hallo,
ich habe eine Tabellenblatt ("Datenblatt") mit Daten. Manche Spalten sind leer (komplett) manche Spalten sind nur oben gefüllt (10:500) und manche sind nur unten (700:850) mit Daten gefüllt.
Ich möchte nun per makro alle Spalten löschen, die KOMPLETT gelöscht sind.
hat jemand eine Idee
Danke Roland

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten löschen
19.01.2009 12:23:11
Hajo_Zi
Hallo Roland,

Option Explicit
Sub Leerspalten_loeschen()
'   alle Leerspalten löschen
Dim LoI As Long
Dim RaZeile As Range
For LoI = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
If Application.WorksheetFunction.CountA(Columns(LoI))  ActiveSheet.UsedRange. _
SpecialCells(xlCellTypeLastCell).Row Then
If Columns(LoI).SpecialCells(xlCellTypeBlanks).Count = ActiveSheet.UsedRange. _
SpecialCells(xlCellTypeLastCell).Row Then
If RaZeile Is Nothing Then
Set RaZeile = Columns(LoI)
Else
Set RaZeile = Union(RaZeile, Columns(LoI))
End If
End If
End If
Next LoI
If Not RaZeile Is Nothing Then RaZeile.Delete
Set RaZeile = Nothing
End Sub



Anzeige
AW: Spalten löschen
19.01.2009 13:19:00
Roland
Hi Hajo,
danke. wie ersetze ich den "ActiveSheet" gegen meine tabelle "Datenblatt", das ganze ist in diesem Moment nicht das ActiveSheet, sondern die Tabelle ""Datenblatt".
Sorry, hatte mich nicht deutlich ausgedrückt..
Roland
AW: Worksheets("Datenblatt") oT
19.01.2009 14:51:54
Hajo_Zi
AW: Worksheets("Datenblatt") oT
19.01.2009 15:55:19
Roland
Hallo Hajo,
danke, jetzt gehts. Nur mit einer Einschränkung, ich kann die Funktion nur ausführen, wenn ich mich gerade auch auf diesem Tabellenblatt befinde. Wenn ich gerade auf einem anderen tabellenblatt bin, kommt eine Fehlermldung.
Ist das korrekt oder mach ich wieder Mist ?
Roland
AW: Worksheets("Datenblatt") oT
19.01.2009 16:43:00
Jan
Hi,

Sub Leerspalten_loeschen()
'   alle Leerspalten löschen
Dim LoI As Long
Dim RaZeile As Range
With Sheets("Datenblatt")
For LoI = 1 To .UsedRange.SpecialCells(xlCellTypeLastCell).Column
If Application.CountA(.Columns(LoI))  .UsedRange. _
SpecialCells(xlCellTypeLastCell).Row Then
If .Columns(LoI).SpecialCells(xlCellTypeBlanks).Count = .UsedRange. _
SpecialCells(xlCellTypeLastCell).Row Then
If RaZeile Is Nothing Then
Set RaZeile = .Columns(LoI)
Else
Set RaZeile = Union(.RaZeile, .Columns(LoI))
End If
End If
End If
Next LoI
If Not RaZeile Is Nothing Then RaZeile.Delete
Set RaZeile = Nothing
End With
End Sub


mfg Jan

Anzeige
AW: Spalten löschen
19.01.2009 12:29:30
Oberschlumpf
Hi Roland
Schön wäre eine ausgefüllte Bsp-Datei.
Wir wissen nicht...
...in welcher Spalte deine Eintragungen beginnen
...welche Spalte(n) von deinem Löschwunsch betroffen ist/sind
Und was bedeutet
...ich habe eine Tabellenblatt...
Bei dir geht es ja gerad noch so (weil wenig Text), aber trotzdem die Bitte, vor dem Absenden immer Korrektur lesen, da Tipp-, Grammatik-, Rechtschreib-, Kommafehler, usw nicht gerade dazu beitragen, dass die Fragen richtig verstanden werden.
Ciao
Thorsten
AW: Spalten löschen
19.01.2009 12:30:00
Uwe
Hi Roland,
ich denke Du meinst ...die komplett leer sind. Teste mal das hier:

Sub LeereSpaltenLöschen()
Dim I As Integer
For I = Columns.Count To 1 Step -1
If WorksheetFunction.CountA(Columns(I)) = 0 Then _
Columns(I).Delete
Next
End Sub


Klappt es?

Anzeige
AW: Hajo ist besser (:-)
19.01.2009 12:36:00
Uwe
Hi Roland,
Hajos Lösung ist natürlcih wesentlich professioneller, sprich "Niet- und Nagelfest", da alle möglichen Fehler abgefangen werden.
Also nimm Hajos Code.
Gruß
Uwe
(:o)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige