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

Forumthread: 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

Anzeige

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

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

Anzeige
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

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ß

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

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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