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

Antwort

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
Neue Frage stellen

Verwandte Fragen

Muss in einem Excel-Makro bei einem If-Block ein End If stehen, wenn vorher Exit Sub ausgeführt wird?

Ja, auch wenn innerhalb einer If-Anweisung in einem Excel-Makro (VBA) ein `Exit Sub` steht, muss das zugehörige `End If` trotzdem geschrieben werden. Die Syntax von VBA verlangt, dass jede mit `I... [mehr]

Wie kann man in Excel-VBA eine For-Next-Schleife vorzeitig beenden?

In Excel-VBA verlässt du eine For/Next-Schleife vorzeitig mit dem Befehl `Exit For`. Sobald dieser Befehl ausgeführt wird, wird die Schleife sofort beendet und der Code nach der Schleife for... [mehr]

Wie kann ein Excel-Makro in allen Blättern, auch ausgeblendeten, das Gitternetz ausblenden?

Um in allen Arbeitsblättern einer Excel-Arbeitsmappe – auch in ausgeblendeten – das Gitternetz auszublenden, kannst du folgendes VBA-Makro verwenden: ```vba Sub GitternetzInAllenBlae... [mehr]

Wie kann man mit einem Excel-Makro in allen Blättern Gitternetzlinien und Überschriften ausblenden?

Hier ist ein VBA-Makro, das in allen Arbeitsblättern einer Excel-Arbeitsmappe sowohl die Gitternetzlinien als auch die Überschriften (Zeilen- und Spaltenköpfe) ausblendet: ```vba Sub G... [mehr]

Wie übergibt man zwei Variablen von einem Excel-Makro an ein anderes?

Um zwei Variablen von einem Excel-Makro an ein anderes zu übergeben, gibt es mehrere Möglichkeiten. Die gängigste und sauberste Methode ist, das zweite Makro als **Sub** oder **Function... [mehr]

Gilt Application.ScreenUpdating=false auch für aufgerufene Makros in Excel?

Ja, der Befehl `Application.ScreenUpdating = False` gilt global für die gesamte Excel-Anwendung und damit auch für alle Makros, die danach ausgeführt werden – unabhängig davo... [mehr]

Wie prüfe ich in einem Excel-Makro, ob das aktive Blatt Sheets("Projekt") ist?

Um in einem Excel-Makro (VBA) zu prüfen, ob das aktive Blatt das Blatt mit dem Namen "Projekt" ist, kannst du folgenden Code verwenden: ```vba If ActiveSheet.Name = "Projekt"... [mehr]

Warum tritt Fehler 400 auf, wenn ein Excel-Makro per Button gestartet wird, obwohl es schrittweise mit F8 funktioniert?

Der 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... [mehr]

Wie speichere ich mit einem Excel-Makro die aktuelle Datei unter einem neuen Namen im gleichen Verzeichnis?

Um die aktuelle Excel-Datei per Makro (VBA) unter einem neuen Namen im gleichen Verzeichnis zu speichern, kannst du folgenden VBA-Code verwenden: ```vba Sub SpeichernUnterNeuemNamen() Dim pfad As... [mehr]

Kann ein Excel-Makro in ausgeblendeten Blättern Zeilen oder Spalten ein- und ausblenden oder Zellen bzw. Bereiche löschen?

Ja, ein Excel-Makro (VBA-Code) kann auch in ausgeblendeten Blättern Zeilen oder Spalten ein- und ausblenden sowie Zellen oder Bereiche löschen. Das Makro kann auf alle Arbeitsblätter zu... [mehr]