Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bestimmte Spalten ab Spalte D löschen - VBA

Bestimmte Spalten ab Spalte D löschen - VBA
10.02.2019 14:10:47
Fritz
Hallo Forumsbesucher,
ich benötige erneut eure Hilfe wie folgt:
In der Tabelle2 sollen alle Spalten (beginnend allerdings erst mit Spalte D) gelöscht werden, in denen in der Zeile 21 weder die Zahl 1 noch das Formelergebnis "" steht bzw. die leer sind.
Das Makro soll auch aus anderen Tabellenblättern gestartet werden können.
Für eure Unterstützung im Voraus besten Dank.
mfg
Fritz
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Spalten ab Spalte D löschen - VBA
10.02.2019 15:23:55
Hajo_Zi
Hallo Fritz,
sehe ich es Richtig, wenn eine dieser Bedingungen zutrifft
Falls A21=1 oder Leer
Falls B21=1 oder Leer
Falls C21=1 oder Leer
Falls D21=1 oder Leer
sol D:XFD nicht gelöscht werden?

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
..wen interessiert das, was Du liest und nicht ?
10.02.2019 15:28:57
robert
wenn interessiert, was robert schreibt?
10.02.2019 15:31:29
Daniel
eigentlich nie was interessantes
wenn? oder wen ? naja, eben ein Daniel....
10.02.2019 16:14:53
robert
Anzeige
Aha, ewige Wiederholungen immer gleicher ...
12.02.2019 20:57:04
Luc:-?
…Tatbestände sind also interessanter, abgesehen mal von diversen, oft sinnfreien Attacken?
Ich würde wohl eher vermuten, dass du eindeutig sehr viel mehr Zeit zV hast als robert und andere, die außerdem entweder noch ver­ant­wortungsvoll einer Arbeit oder gar ehrenamtlicher Tätigkeit nachgehen.
Mit Hajo hast du dich wohl nur deshalb noch nicht angelegt, weil der höchstens mit einer Ergänzung seiner in Wirklichkeit viel umfang­rei­cheren und abgestuften Ignorierliste reagieren würde (nicht antworten, nicht lesen und beides)…
Luc :-?
Anzeige
AW: Bestimmte Spalten ab Spalte D löschen - VBA
10.02.2019 15:34:38
Daniel
Hi
probiers mal so:
dim s as long
with Sheets("Tabelle2")
for s = .cells.SpeicalCells(xlcelltypelastcell).Column to 4 step - 1
Select Case .Cells(21, s).Value
Case "", 1
Case else: .Columns(s).Delete
end Select
next
end with
Gruß Daniel
AW: Bestimmte Spalten ab Spalte D löschen - VBA
10.02.2019 15:49:25
Fritz
Hallo Daniel,
vielen Dank, werde es gleich testen und dann Rückmeldung geben.
mfg
Fritz
P.S. Wollte gerade auf die Fragen einzelner antworten und will deshalb - unabhängig von Daniels Vorschlag - mein Anliegen noch mal wie folgt konkretisieren:
Es sollen alle Spalten im Tabellenblatt Tabelle2 ab der Spalte D alle
die in Zeile 21 nicht leeren Spalten gelöscht werden, mit Ausnahme
derjenigen Spalten in denen in Zeile 21 eine 1 oder als Formelergebnis
"" steht.
Anzeige
AW: Bestimmte Spalten ab Spalte D löschen - VBA
10.02.2019 16:08:14
Fritz
Hallo Daniel,
mein Test erbrachte folgende Fehlermeldung:
Laufzeitfehler 438:
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Gelb markiert wurde die Zeile im Code, die mit "For s " beginnt.
Gruß
Fritz
AW: Bestimmte Spalten ab Spalte D löschen - VBA
10.02.2019 16:13:42
Werner
Hallo,
Schreibfehler noch
SpeicalCells

Sondern
SpecialCells
Gruß Werner
Anzeige
AW: Bestimmte Spalten ab Spalte D löschen - VBA
10.02.2019 16:22:00
Fritz
Hallo Werner,
genau das war es, Dir erneut vielen Dank.
Dank nochmals auch an Daniel, jetzt funktioniert es wie gewünscht.
Für uns Hilfesuchende einfach großartig, dieses Forum mit diesen kompetenten Helfern.
mfg
Fritz
Gerne u. Danke für die Rückmeldung. o.w.T.
10.02.2019 19:49:30
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Spalten ab Spalte D löschen mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und navigiere zu dem Arbeitsblatt, in dem du die Spalten ab D löschen möchtest (in diesem Fall "Tabelle2").

  2. Drücke ALT + F11 um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Rechtsklicke im Projektfenster auf "VBAProject (deine_datei.xlsm)".
    • Wähle Einfügen > Modul.
  4. Kopiere und füge den folgenden Code in das Modul ein:

    Dim s As Long
    With Sheets("Tabelle2")
       For s = .Cells.SpecialCells(xlCellTypeLastCell).Column To 4 Step -1
           Select Case .Cells(21, s).Value
               Case "", 1
               Case Else: .Columns(s).Delete
           End Select
       Next
    End With
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus:

    • Drücke ALT + F8, wähle das Makro aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Laufzeitfehler 438: Dieser Fehler tritt auf, wenn eine Methode oder Eigenschaft nicht unterstützt wird. Überprüfe, ob du SpecialCells richtig geschrieben hast. Es sollte so aussehen:

    .Cells.SpecialCells(xlCellTypeLastCell)
  • Falsches Arbeitsblatt: Stelle sicher, dass das Arbeitsblatt "Tabelle2" exakt so benannt ist. Überprüfe die Schreibweise.


Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch eine SQL-Abfrage in einer Excel-Datenbank verwenden, um leere Spalten zu leeren oder zu löschen. Dies erfordert jedoch Kenntnisse in SQL und möglicherweise die Verwendung von Power Query.


Praktische Beispiele

  1. Beispiel 1: Du möchtest alle Spalten ab D in "Tabelle3" löschen:

    • Ändere im Code With Sheets("Tabelle2") zu With Sheets("Tabelle3").
  2. Beispiel 2: Wenn du die Spalten ab D auf Basis anderer Bedingungen löschen möchtest, passe die Select Case-Bedingungen nach Bedarf an.


Tipps für Profis

  • Backup erstellen: Bevor du das Makro ausführst, erstelle ein Backup deiner Excel-Datei, um Datenverlust zu vermeiden.
  • Testumgebung: Teste den Code in einer Kopie deiner Datei, um sicherzustellen, dass alles wie gewünscht funktioniert.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um das Makro robuster zu machen.

FAQ: Häufige Fragen

1. Was passiert mit Daten in gelöschten Spalten?
Alle Daten in den gelöschten Spalten gehen verloren. Stelle sicher, dass du ein Backup hast.

2. Kann ich das Makro anpassen, um auch andere Bedingungen zu überprüfen?
Ja, du kannst die Bedingungen im Select Case-Block nach deinen Bedürfnissen anpassen.

3. Funktioniert dieser Code in Excel für Mac?
Ja, VBA funktioniert auch in Excel für Mac, allerdings kann die Tastenkombination für den VBA-Editor abweichen.

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