Ja. Verwende dieses Makro und weise es dem Button zu: vba Sub SpaltenEGUmschalten() Columns("E:G").EntireColumn.Hidden = Not Columns("E").EntireColumn.Hidden End Sub So funktio...
Warum tritt Fehler 400 auf, wenn ein Excel-Makro per Button gestartet wird, obwohl es schrittweise mit F8 funktioniert?
Antwort vomDer Fehler 400 in Excel-Makros ist ein allgemeiner Laufzeitfehler, der oft auftritt, wenn etwas im Code nicht wie erwartet funktioniert. Dass der Fehler nur beim Starten über den Button und nicht beim schrittweisen Ausführen mit F8 auftritt, deutet meist auf einen Unterschied im Kontext oder in den Voraussetzungen hin. Hier sind die häufigsten Ursachen und Lösungsansätze: **1. Fehlende oder falsche Auswahl (Selection/ActiveCell):** Beim Ausführen mit F8 ist oft die richtige Zelle oder das richtige Blatt aktiv. Beim Start über den Button kann das anders sein. Prüfe, ob dein Makro mit `Selection`, `ActiveCell` oder ähnlichen Objekten arbeitet. **Lösung:** Arbeite möglichst mit expliziten Verweisen wie `Worksheets("Tabelle1").Range("A1")` statt mit `Selection`. **2. Arbeitsblatt nicht aktiv:** Wenn dein Makro auf ein bestimmtes Blatt zugreift, stelle sicher, dass dieses Blatt auch aktiviert wird, bevor du darauf zugreifst. **Beispiel:** ```vba Worksheets("Tabelle1").Activate Range("A1").Value = "Test" ``` **3. Button ist ein ActiveX- oder Formularsteuerelement:** Je nach Typ des Buttons kann der Kontext unterschiedlich sein. Prüfe, ob der Code im richtigen Modul (z.B. in einem normalen Modul, nicht im Tabellenblatt-Modul) liegt. **4. Fehlerbehandlung:** Füge am Anfang deines Makros eine Fehlerbehandlung ein, um die genaue Fehlerzeile zu finden: ```vba On Error GoTo Fehler ' ... dein Code ... Exit Sub Fehler: MsgBox "Fehler in Zeile: " & Erl & vbCrLf & Err.Description ``` **5. Übergabeparameter:** Wenn dein Makro Parameter erwartet, der Button aber keine übergibt, kann das zu Fehlern führen. **6. Geschützte Blätter oder Zellen:** Wenn das Arbeitsblatt oder bestimmte Zellen geschützt sind, kann das Makro beim Schreiben/Ändern einen Fehler verursachen. **Fazit:** Überprüfe deinen Code auf die oben genannten Punkte. Besonders häufig ist der Fehler bei der Verwendung von `Selection` oder `ActiveCell`. Wenn du möchtest, kannst du den relevanten Codeabschnitt posten (ohne Aufforderung), dann kann gezielter geholfen werden. Weitere Infos zu Fehler 400 findest du auch bei Microsoft: [https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/error-400](https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/error-400)
Verwandte Fragen
Excel-Makro: Im Bereich B10:B20, wenn der IndentLevel in Spalte B = 1 ist, dann in dieser Zeile in B:O oben eine dünne Rahmenlinie setzen?
vba Sub RahmenObenBeiIndent1() Dim ws As Worksheet Dim c As Range Set ws = ActiveSheet For Each c In ws.Range("B10:B20") If c.IndentLevel = 1 Then With ws.Range(ws.Cells(c.Row, &q...
Kann man mit einem Excel-Makro abfragen, ob und wie stark ein Zellinhalt eingerückt ist?
Ja. In Excel-VBA kannst du die Einrückung einer Zelle über IndentLevel abfragen. Beispiel: vba Sub EinrueckungPruefen() Dim wert As Long wert = Range("A1").IndentLevel MsgB...
Lässt sich die Excel-Warnung „Pivot enthält schon Daten“ per Makro ausschalten?
Ja. Die Meldung lässt sich im Makro meist mit deaktivierten Excel-Warnungen unterdrücken: vba Application.DisplayAlerts = False ' Pivot-Aktion hier, z. B. Aktualisieren / Ersetzen / L...
Kann man mit einem Excel-Makro den Filter einer Pivot-Tabelle ändern?
Ja. Mit einem Excel-Makro (VBA) kannst du den Filter einer Pivot-Tabelle ändern, zum Beispiel: Berichtsfilter setzen einzelne Pivot-Felder filtern bestimmte Elemente ein-/ausblenden Datums- oder...
Excel-Makro: Einfärbung der Zellen B10:D15 aufheben?
Ja. In VBA z. B. so: vba Range("B10:D15").Interior.Pattern = xlNone Alternativ: vba Range("B10:D15").Interior.ColorIndex = xlColorIndexNone Falls auch andere Formatierungen e...
Excel-Makro: Kann bei einer If-Schleife mit nur einer Anweisung nach Then und Else alles in derselben Zeile stehen?
Ja. In VBA/Excel-Makros darf eine einzeilige If-Anweisung so geschrieben werden: vba If Bedingung Then AnweisungElse Mit Else in derselben Zeile: vba If x > 0 Then y = 1 Else y = 2 Sobald na...
Wie löscht man mit einem Excel-Makro im Bereich B10:H100 alle Zellrahmen?
vba Range("B10:H100").Borders.LineStyle = xlNone
Excel-Makro: Alle Spalten in Tab1!Alle ausblenden, wobei „Alle“ als =INDIREKT(Tab2!B5):INDIREKT(Tab2!B6) definiert ist?
Ja. Das geht per VBA, indem der definierte Name Alle ausgewertet und die darin enthaltenen Spalten ausgeblendet werden. vba Sub SpaltenAusblendenAlle() Dim rng As Range On Error GoTo Fehler Set...
Excel: Wie ruft man mit einem Makro ein anderes Makro auf und übergibt dabei die Zahl 1 oder 2 sowie die Zelladresse A4?
Ja. In VBA übergibst du Werte als Parameter. vb Sub Starter() Call ZielMakro(1, Range("A4").Address) Call ZielMakro(2, Range("A4").Address) End Sub Sub ZielMakro(ByVal num...