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

Spalten Löschen

Spalten Löschen
02.08.2005 12:44:59
Pasternak
Hallo,
mein Problem ist wie folgt:
Ich möchte leere Spalten aus einer Exceltabelle löschen.
Das mit den leere Zeilen Löschen hab ich hinbekommen. Nun dachte ich, dass das eigentlich derselbe Quellcode sein muss, nur auf Spalten ausgelegt.
Ich finde den Fehler nicht, könnte mir da jemand helfen?
Hier ist mein Quellcode:
Spaltenzähler und Löschen der leeren Spalten

Sub Leere_Spalte_Löschen()
Dim i As Integer
Application.ScreenUpdating = False
'Spalten Löschen
For i = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column To 1 Step -1
If Application.WorksheetFunction.CountA(Columns(i)) = 0 Then Columns(i).Delete
If i Mod 100 = 0 Then Application.StatusBar = i
Next
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten Löschen
02.08.2005 12:55:19
Unbekannter Nummer Eins
Damit löschst du alle Spalten die leer sind

Sub spalten()
Dim a
For a = 1 To 80
If Columns(a).Range("a1").Value = Empty Then
Columns(a).Delete
Else
End If
Next a
End Sub

Gruß UN1
Das Makro ist falsch
02.08.2005 12:56:40
Unbekannter Nummer Eins
AW: Spalten Löschen
02.08.2005 12:56:25
Hajo_Zi
Hallo Pasternak,
mache es ein wenig schneller. Lösche nicht jede Spalte alleine.

Sub Leerspalten_loeschen()
'   alle Spalten löschen
Dim LoI As Long
Dim RaZeile As Range
For LoI = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
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
Next LoI
RaZeile.Delete
Set RaZeile = Nothing
End Sub


Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
Das hier ist besser
02.08.2005 12:59:10
Unbekannter Nummer Eins

Sub spalten()
Dim a
For a = 1 To 80
If Columns(a).Cells(1) = Empty Then
Columns(a).Delete
Else
End If
Next a
End Sub

AW: Das hier ist besser
02.08.2005 13:04:10
Hajo_Zi
Hallo UNE,
aber nicht in der Zeit.
Gruß Hajo

"Wer Rechtschreibfehler findet, darf sie behalten!"
AW: Das hier ist besser
02.08.2005 13:05:23
Unbekannter Nummer Eins
Ich glaube die zehntel-Sekunde kann man schenken.
AW: Das hier ist NICHT besser
02.08.2005 13:11:38
Martin Beck
Hallo,
das ist nicht besser, denn es enthält mindestens zwei Fehler:
1) Es werden auch Spalten gelöscht, in denen nur die erste Zelle leer ist.
2) Da Du von links nach rechts vorgehst, werden aufeinanderfolgende Leerspalten nicht alle gelöscht.

Das schnellste Makro ist übrigens das von Pasternak gepostete und es funktioniert einwandfrei.
Gruß
Martin Beck
Anzeige
AW: Das hier ist NICHT besser
02.08.2005 13:15:12
Unbekannter Nummer Eins
1.Stimmt würde ich noch ändern wenn Hajo keines gepostet hätte.
2.Stimmt auch, jetzt schäme ich mich aber Richtig.Passiert nicht noch mal

Hajo hat das Makro gepostet nicht Pasternak.
AW: Das hier ist NICHT besser
02.08.2005 13:20:02
Martin Beck
Hallo Unbekannter,
wer lesen kann ist klar im Vorteil ;-)
Das Makro in Pasternaks Eröffnungsposting ist das schnellste, auch schneller als Hajos Vorschlag. Hängt (vermutlich) damit zusammen, das die Worksheetfunction deutlich schneller ist als UNION.
Gruß
Martin Beck
Mein reden :-)
02.08.2005 13:15:39
Frederik Fuhrmann
AW: Mein reden :-)
02.08.2005 13:18:19
Unbekannter Nummer Eins
Ich weiß und hätte dir jetzt kein andere was gegeben ,hätte ich das alles noch geändert.
AW: Das hier ist besser
02.08.2005 13:16:12
Pasternak
Das Makro spalten löscht wirklich spalten, die eigentlich nicht gelöscht werden sollen.
Anzeige
AW: Das hier ist besser
02.08.2005 13:18:05
Frederik Fuhrmann
Klar, es schaut ja auch nur ob die erste Zelle leer ist!
AW: Spalten Löschen
02.08.2005 12:56:46
Frederik Fuhrmann
Hallo!
Bei mir gehts mit deinem Code!
Was tritt für ein Fehler auf/ was geht nicht?
Gruß
F.
AW: Spalten Löschen
02.08.2005 13:00:42
Unbekannter Nummer Eins
Der kann nicht gehen da die Range immer A1 war.
AW: Spalten Löschen
02.08.2005 13:04:34
Frederik Fuhrmann
Also bei mir gehts!
AW: Spalten Löschen
02.08.2005 13:06:01
Unbekannter Nummer Eins
Frag mich nicht,nach meiner Logik kann das nicht gehen.
AW: Spalten Löschen
02.08.2005 13:10:10
Frederik Fuhrmann
Habe es doch probiert! Macht auch nichts, wenn die Range immer nur A1 ist, es ist ja nur der Step! von der letzten bis zur ersten Spalte im Schritt -1 !
Ist ja auch egal, jetzt dürften genug lösungen da sein!
AW: Spalten Löschen
02.08.2005 13:11:29
Unbekannter Nummer Eins
Genau das habe ich auch gemerkt und deshalb habe ich ein neues gepostet das die Spalten jetzt richtug löscht.
Anzeige
AW: Spalten Löschen
02.08.2005 13:01:40
Pasternak
Es tritt gar kein Fehler auf, aber er löscht die Zeilen einfach nicht!
AW: Spalten Löschen
02.08.2005 13:02:31
Unbekannter Nummer Eins
Ich habe ja ein neues Makro gepostet.
AW: Spalten Löschen
02.08.2005 13:15:53
Martin Beck
Hallo Pasternak (???),
Du wolltest doch Spalten und nicht Zeilen löschen, oder?
Da das Makro funktioniert, solltest Du mal prüfen, ob die Spalten wirklich leer sind. Evtl. enthalten Sie Formeln, die als Ergebnisse einen Leerstring zurückgeben. Oder sind die Daten aus einem Fremdprogramm übernommen worden? Dann können auch Leerstrings oder Leerzeichen vorkommen.
Gruß
Martin Beck
AW: Spalten Löschen
02.08.2005 13:19:31
Pasternak
Ich möchte leere Spalten löschen und keine Zeilen, denn das für die Zeilen hab ich hingekriegt.
Anzeige
AW: Spalten Löschen
02.08.2005 13:21:20
Pasternak
Wie kann ich überprüfen, ob die Spalten richtig leer sind, ob Leerstrings oder Leerzeichen vorkommen? Bin kein so Profi, hab erst angefangen mit VBA.
AW: Spalten Löschen
02.08.2005 13:24:35
Martin Beck
Hallo,
dazu genügt eine einfache Formel.
=ANZAHLLEEREZELLEN(B:B)
sollte für Spalte B das Ergebnis 65536 bringen, wenn aller Zellen leer sind. Die Foreml mußt Du natürlich in eine andere Spalte eintragen.
Gruß
Martin Beck
AW: Spalten Löschen
02.08.2005 13:30:01
Pasternak
Bei mir steht aber was drin in der Spalte B. Bei mir kommt es auf die Spalten ab AM an.
AW: Spalten Löschen
02.08.2005 13:32:55
Pasternak
Ich hab mal nochmal mein Makro ausprobiert: Meine Fehlermeldung, die ich jetzt erhalte lautet:
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Anzeige
Oh Mann , ...
02.08.2005 13:38:06
Martin Beck
... das war doch nur ein Beispiel! Du mußt die Formel natürlich an Deine Tabelle anpassen.
Ich habe das Gefühl, Deine Excelkenntnisse reichen schlicht nicht aus. Lade mal die Datei hoch, ansonsten sehe ich schwarz.
Gruß
Martin Beck
Und, sind die Spalten wirklich leer? (oT)
02.08.2005 13:21:29
Martin Beck

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige