Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabelle Spalten auf leer überprüfen und löschen

Tabelle Spalten auf leer überprüfen und löschen
06.04.2016 22:03:40
snewi133
HAllo ,
ich hole mir Daten aus einer DB und würde gerne nach dem die Daten geholt sind alle Spalten die leer sind löschen! Wie mache ich das in VBA!
Die Spalten von C:HT sollen gelöscht werden wenn diese keinen Inhalt haben!
https://www.herber.de/bbs/user/104810.xlsx
Danke

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle Spalten auf leer überprüfen und löschen
06.04.2016 22:33:39
Fennek
Hallo,
versuche diesen Code, das Löschen ist vorbereitet, aber noch nicht aktiviert. Die zu löschenden Spalten werden in das 'Direktfenster' geschrieben, alt-f11 öffnet den vba- editor, strg-g das Direktfenster.

Sub sNewi()
For i = 3 to 228
If worksheetfunction.counta(columns(i)) = 1 then
'Columns(i).delete
Debug.print i
End if
Next i
End sub
Mfg

AW: Tabelle Spalten auf leer überprüfen und löschen
06.04.2016 22:48:24
snewi133
Das klappt irgendwie nicht! Es werden zu wenige Spalten gelöscht!
HAtte es versucht mit

Sub SpaltenLoeschen()
Dim SpalteEnd As Integer
With ThisWorkbook.Worksheets("Tabelle1")
SpalteEnd = .UsedRange.Columns.Count
For i = SpalteEnd To 3 Step -1
If .Cells(1, i).Value = "" Then
.Columns(i).Delete
End If
Next Spalte
End With
End Sub
Das klappt aber nur wenn ich vorher in Spalte 1 die Summe bilde! Und das will ich ja nicht!
Wie könnte es ohne Hilfsspalte klappen? Müsste also nicht nur Zelle 1 prüfen sondern Zelle 2 bis letzte Row mit Wert!
Gruß

Anzeige
AW: Tabelle Spalten auf leer überprüfen und löschen
06.04.2016 22:50:26
snewi133
Hab gerade gesehen das es doch geht aber nur wenn ich mehrfach den Code ausführe! Warum?

AW: Tabelle Spalten auf leer überprüfen und löschen
06.04.2016 22:59:01
snewi133
So gehts :-)

Sub SpaltenLoeschen()
Dim SpalteEnd As Integer
With ThisWorkbook.Worksheets("Tabelle1")
SpalteEnd = .UsedRange.Columns.Count
For i = SpalteEnd To 1 Step -1
'If .Cells(1, i).Value = "" Then
If WorksheetFunction.CountA(Columns(i)) = 1 Then
'.Columns(i).Delete
Debug.Print i
End If
Next Spalte
End With
End Sub
Warum auch immer :-) Danke!
Was macht eigentlich das WorksheetFunction.CountA?
Gruß

AW: Tabelle Spalten auf leer überprüfen und löschen
06.04.2016 23:05:17
Fennek
Hallo,
in deiner Beispieldatei stehen immer Überschriften, also es ist mindestens 1Zelle pro Spale belegt.
CountA zähle, wie viele Zellen nicht leer sind, also entweden Zahlen oder Texte oder Formeln enthalten.
Mfg

Anzeige
AW: Tabelle Spalten auf leer überprüfen und löschen
06.04.2016 23:39:46
snewi133
Eine Frage hätte ich da noch! Ich würde auch immer gerne die Spalte löschen wo in der Überscdhrift "SUMME" steht! Wie mache ich das noch?
Gruß

AW: Tabelle Spalten auf leer überprüfen und löschen
07.04.2016 08:56:21
Fennek
Hallo,
nachts kommen oft Verbesserungsideen:
Ändere bitte:

For i = 228 to 3 step -1
und anstelle von debug.print

Cells(1, i).interior.color = vbyellow
Das markiert im ersten Durchlauf die Spalten, die dann im zweiten Anlauf, nachdem das Kommentarzeichen entfernt wurde, alle Leerspalten löscht.
Deine letzte Frage überlasse ich anderen Helfern.
Mfg
Anzeige

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige