z.B.: Wenn in bestimmten Zellen von Spalte X nur Nullen enthalten sind, dann blende Spalte X (und Y) aus.
Danke im voraus.
Marco
Danke im voraus.
Marco
Versuchs mal so:
Sub Test2()
If Range("x1") = "" Then
If Range("x2") = "" Then
Columns("X:X").EntireColumn.Hidden = True
End If
End If
End Sub
Gruß
F.
Sub Test2()
If Range(D1) = "" Then
If Range(D9) = "" Then
Columns("D:D").EntireColumn.Hidden = True
End If
End If
End Sub
Funktioniert aber leider nicht. Zu alte XL-Version (97) ???
Sub Test2()
...
If Range("D1") = "" Then
If Range("D9") = "" Then
...
Du musst die Zellen in Klammern setzen!
Kann ich mit dem RANGE-Befehl auch einen ganzen Bereich definieren, also wenn Zellen D1 bis D22 leer, dann ...
Und wie kann ich erreichen, dass das Makro automatisch ausgeführt wird, ohne dass es extra angestoßen wird?
Ich habe die VBA-Syntax jatzt unter Tabelle 1 gespeichert.
Nochmals danke für die Anfänger-Nachhilfe!
Marco
If Range("D1:D22")...
Das mit dem automatischen anstoßen;
Dann musst du in das Tabellenblatt(VBA) reinschreiben:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
(dein Code)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("D1:D45") = "" Then
Columns("D:D").EntireColumn.Hidden = True
End If
End Sub
Was mache ich falsch?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich
Bereich = 1
For Bereich = 1 To 45
If Range("D" & Bereich) <> "" Then
...
End If
Next Bereich
End Sub
ich würde umgekehrt vorgehen, um zu vermeiden dass der Hidden-Befehl ggfs. 45 Mal ausgeführt wird:
Gruß
Jürgen
zwar kein Laufzeitfehler mehr, aber bei der Lösung wird Spalte D auf jeden Fall ausgeblendet, egal ob irgendwo im Bereich D1:D45 ein Wert 0 oder größer 0 steht. Dabei habe ich mit dem gleichen Ergebnis die Varianten RANGE(...) ="" und <>"" probiert.
Das Problem ist, dass Spalte D Formeln enthält. Wenn das Ergebnis dieser Formlen 0 ist, dann sollen Spalten D und E ausgeblendet werden. Tut mir leid, wenn ich das nicht klar genug geschildert habe.
Gruß, Marco
Das Problem ist, dass Spalte D von Zelle 1 bis 45 Formeln enthält. Wenn das Ergebnis dieser Formeln durchgängig 0 ist, dann sollen Spalten D und E ausgeblendet werden.
Wenn sich nun aufgrund der Formeln in einer der Zellen ein Wert > 0 ergibt, sollen die Spalten wieder eingeblendet werden.
Gruß, Marco
dann so:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim i As Long
Columns("D:E").EntireColumn.Hidden = True
For i = 1 To 45
If Cells(i, 4) <> 0 Then
Columns("D:E").EntireColumn.Hidden = False
Exit Sub
End If
Next i
End Sub
Gruß
Jürgen
Frage im Nachgang:
Wofür steht eigentlich in "If Cells(i, 4)" die 4?
Danke im voraus,
MArco
Was muss ich tun?
dann zusätzlich:
Private Sub Worksheet_Activate()
Dim i As Long
Columns("D:E").EntireColumn.Hidden = True
For i = 1 To 45
If Cells(i, 4) <> 0 Then
Columns("D:E").EntireColumn.Hidden = False
Exit Sub
End If
Next i
End Sub
Gruß
Jürgen
Danke nochmal für Deine super Hilfe!
Gruß, Marco
Um Spalten ausblenden zu können, wenn bestimmte Bedingungen erfüllt sind, kannst du VBA (Visual Basic for Applications) in Excel verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" -> Einfügen -> Modul.
Füge den folgenden Code ein:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Columns("D:E").EntireColumn.Hidden = True
For i = 1 To 45
If Cells(i, 4) <> 0 Then
Columns("D:E").EntireColumn.Hidden = False
Exit Sub
End If
Next i
End Sub
Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.
Teste die Funktion: Ändere die Werte in den Zellen D1 bis D45 und beobachte, wie die Spalten automatisch ausgeblendet werden.
If Range("D1") = "" Then.Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch bedingte Formatierungen nutzen, um Spalten visuell zu kennzeichnen, anstatt sie auszublenden. Dazu:
Start -> Bedingte Formatierung.Neue Regel -> Formel zur Ermittlung der zu formatierenden Zellen verwenden.=D1=0, um die Zellen zu formatieren, wenn der Wert 0 ist.Spalte ausblenden, wenn alle Werte 0 sind:
If Application.WorksheetFunction.CountIf(Range("D1:D45"), "<>0") = 0 Then
Columns("D").Hidden = True
End If
Mehrere Spalten basierend auf einer Bedingung ausblenden:
If Application.WorksheetFunction.CountIf(Range("D1:D45"), "<>0") = 0 Then
Columns("D:E").Hidden = True
End If
Worksheet_Activate-Ereignis verwenden, damit die Spalten beim Öffnen des Arbeitsblattes sofort überprüft werden.Optimierung des Codes: Verwende Application.ScreenUpdating = False, um das Flackern beim Ausblenden von Spalten zu reduzieren.
Application.ScreenUpdating = False
' Dein Code hier
Application.ScreenUpdating = True
1. Wie kann ich eine Spalte ausblenden, wenn ein bestimmter Wert vorhanden ist?
Du kannst den VBA-Code anpassen, um die Bedingung entsprechend zu ändern. Beispiel: If Cells(i, 4) = 1 Then.
2. Was mache ich, wenn die Formeln auf ein anderes Blatt verweisen?
Du musst sicherstellen, dass der VBA-Code sowohl auf das aktuelle Blatt als auch auf die entsprechenden Zellen auf dem anderen Blatt zugreift. Verwende Worksheets("Blattname").Cells(i, 4).
3. Kann ich auch Zeilen basierend auf bestimmten Bedingungen ausblenden? Ja, du kannst einen ähnlichen Ansatz verwenden, um Excel zeilen auszublenden, indem du den Code für die Zeilen anpasst.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen