Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen in mehreren Tabellenblättern löschen (VBA)

Zeilen in mehreren Tabellenblättern löschen (VBA)
31.07.2019 09:19:13
Kai
Guten Morgen,
ich habe eine Arbeitsmappe mit 5 Tabellen, Tabelle 1-3 sind identisch und ich stehe vor _ folgender Herausforderung: Auf Tabelle 3 kann in Spalte F (Zeile 4:21) ein Wert zwischen 1-5 gewählt werden (der Wert überträgt sich dann auch in Tabelle 1 & 2). Wird die 1 gewählt soll sich diese Zeile in Tabelle 1-3 ausblenden. Ich hab da auch schon ein VBA vorbereitet und auf einen Button in Tabelle 3 gelegt, allerdings werden aktuell alle Zeilen (4:21) auf den 3 Tabellenblättern ausgeblendet. Weiß jemand welche Anpassung ich vornehmen muß, damit nur die Zeilen mit der 1 in Spalte F über alle 3 Tabellenblätter ausgeblendet werden?

Sub ausblenden()
Application.ScreenUpdating = False
Tabelle1.Select
Dim zeile As Integer
For zeile = 4 To 21
If Range("F" & zeile).Value = "1" Then Range("F" & zeile).Value = "2"
Rows(zeile).Hidden = True
Next zeile
Tabelle2.Select
For zeile = 4 To 21
If Range("F" & zeile).Value = "1" Then Range("F" & zeile).Value = "2"
Rows(zeile).Hidden = True
Next zeile
Tabelle3.Select
For zeile = 4 To 21
If Range("F" & zeile).Value = "1" Then Range("F" & zeile).Value = "2"
Rows(zeile).Hidden = True
Next zeile
Application.ScreenUpdating = True
End Sub
Vielen Dank für Eure Unterstützung :)
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen in mehreren Tabellenblättern löschen (VBA)
31.07.2019 11:09:42
Rob
Hi,
die Syntax ist falsch. Probier es mal so:

If Range("F" & zeile).Value = "1" Then
Range("F" & zeile).Value = "2"
Rows(zeile).Hidden = True
End if

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in mehreren Tabellenblättern mit VBA ausblenden


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei mit den Tabellenblättern, in denen Du Zeilen ausblenden möchtest.

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

  3. Füge ein neues Modul hinzu:

    • Klicke auf „Einfügen“ und wähle „Modul“.
  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub ausblenden()
       Application.ScreenUpdating = False
       Dim zeile As Integer
       For Each ws In ThisWorkbook.Worksheets
           For zeile = 4 To 21
               If ws.Range("F" & zeile).Value = "1" Then
                   ws.Rows(zeile).Hidden = True
               End If
           Next zeile
       Next ws
       Application.ScreenUpdating = True
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Füge einen Button hinzu und weise ihm das Makro ausblenden zu.

  7. Teste das Makro, indem Du in Tabelle 3 einen Wert in Spalte F änderst.


Häufige Fehler und Lösungen

  • Problem: Alle Zeilen werden ausgeblendet, auch wenn die Bedingung nicht erfüllt ist.
    Lösung: Stelle sicher, dass die Schleife nur die Zeilen ausblendet, bei denen der Wert in Spalte F tatsächlich „1“ ist. Siehe den verbesserten Code oben.

  • Problem: Der Button funktioniert nicht.
    Lösung: Überprüfe, ob das Makro korrekt zugewiesen ist. Klicke mit der rechten Maustaste auf den Button und wähle „Makro zuweisen“.


Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du die Funktion „Bedingte Formatierung“ nutzen:

  1. Markiere die Zeilen 4 bis 21 in den gewünschten Tabellen.
  2. Gehe zu „Start“ -> „Bedingte Formatierung“ -> „Neue Regel“.
  3. Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“ und gib die Formel =$F4=1 ein.
  4. Wähle eine Formatierung, z.B. Textfarbe auf Weiß setzen, um die Zeilen unsichtbar zu machen.

Praktische Beispiele

Die oben angegebene VBA-Lösung funktioniert effektiv in Excel-Versionen ab 2010. Wenn Du beispielsweise in Tabelle 3 in Zelle F4 den Wert „1“ einträgst und das Makro ausführst, wird die gesamte Zeile 4 in allen drei Tabellenblättern ausgeblendet.


Tipps für Profis

  • Verwende Option Explicit: Das Hinzufügen dieser Zeile am Anfang Deines Moduls zwingt Dich, alle Variablen zu deklarieren, was das Debugging erleichtert.
  • ScreenUpdating: Das Deaktivieren von Application.ScreenUpdating verbessert die Performance des Makros, da Excel nicht bei jeder Zeilenänderung aktualisiert wird.
  • Backup: Erstelle immer ein Backup Deiner Arbeitsmappe, bevor Du mit VBA arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um andere Werte auszublenden?
Ändere einfach die Bedingung If ws.Range("F" & zeile).Value = "1" in den gewünschten Wert, z.B. „2“ oder „3“.

2. Funktioniert dieser Code in Excel für Mac?
Ja, der VBA-Code sollte auch in der Mac-Version von Excel funktionieren, solange Du den VBA-Editor verwenden kannst.

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