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