Warum funktioniert das Excel-Makro mit Dim zeilen as String, Choose und Rows(zeilen).Hidden = True nicht?

Antwort vom

Der Fehler liegt daran, dass du die Variable `zeilen` als `String` deklarierst, aber die Funktion `Rows(zeilen).Hidden = True` einen Bereich erwartet, der als Zeilenreferenz interpretiert werden kann. Das ist grundsätzlich korrekt, aber es gibt ein Problem mit der Initialisierung von `i` und der Verwendung von `Choose`. Hier ein Beispiel, wie es korrekt funktioniert: ```vba Sub ZeilenAusblenden() Dim zeilen As String Dim i As Integer i = 2 zeilen = Choose(i, "8:11", "9:11") Rows(zeilen).Hidden = True End Sub ``` **Mögliche Fehlerquellen:** 1. **Variable i nicht deklariert:** Du solltest `i` als `Integer` deklarieren. 2. **Makro nicht in einer Sub:** Der Code muss in einer Sub-Prozedur stehen. 3. **Falscher Wert für i:** `Choose(i, ...)` gibt bei `i=2` den zweiten Wert zurück, also `"9:11"`. 4. **Bereich existiert nicht:** Stelle sicher, dass die Zeilen 9 bis 11 in deinem Arbeitsblatt existieren. **So sollte es aussehen:** ```vba Sub ZeilenAusblenden() Dim zeilen As String Dim i As Integer i = 2 zeilen = Choose(i, "8:11", "9:11") Rows(zeilen).Hidden = True End Sub ``` **Hinweis:** Wenn du das Makro in einem Modul speicherst und ausführst, sollte es funktionieren, sofern die Zeilen im Arbeitsblatt vorhanden sind. **Weitere Infos zu VBA:** [Microsoft VBA-Dokumentation](https://learn.microsoft.com/de-de/office/vba/api/overview/excel) Falls weiterhin ein Fehler auftritt, gib bitte die genaue Fehlermeldung an.

Kategorie: Technologie Tags: Excel Makro VBA

Verwandte Fragen

Excel-Makro: Spalten E:G per Button ein- und ausblenden?

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...

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...

Syntax von IsNumeric in Excel-VBA?

IsNumeric(Ausdruck) Beispiel: vba If IsNumeric(Range("A1").Value) Then MsgBox "Zahl" Else MsgBox "Keine Zahl" End If Rückgabewert: True = numerisch False = nich...

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...

Gibt es die Excel-Funktion ZÄHLENWENN auch in Excel-VBA?

Ja. In Excel-VBA gibt es dafür WorksheetFunction.CountIf oder direkt Application.CountIf. Beispiel: vba Dim erg As Long erg = Application.WorksheetFunction.CountIf(Range("A1:A10"), &...

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