Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
144to148
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
144to148
144to148
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten ausblenden, wenn ...

Spalten ausblenden, wenn ...
05.08.2002 10:53:55
amb_mr
Gibt es eine Möglichkeit, eine (oder mehrere) Spalten automatisch auszublenden, wenn eine oder mehrere Zellen bestimmte Werte enthalten?
z.B.: Wenn in bestimmten Zellen von Spalte X nur Nullen enthalten sind, dann blende Spalte X (und Y) aus.

Danke im voraus.

Marco

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Spalten ausblenden, wenn ...
05.08.2002 10:58:43
Frederik Fuhrmann
Hallo!

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.

Geht leider nicht ...
05.08.2002 11:12:20
amb_mr
Habe folgendes probiert:

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) ???

Re: Geht leider nicht ...
05.08.2002 11:16:22
Frederik Fuhrmann

Sub Test2()

...
If Range("D1") = "" Then
If Range("D9") = "" Then
...

Du musst die Zellen in Klammern setzen!

Das klappt jetzt, aber ...
05.08.2002 11:29:37
amb_mr
Vielen Dank, Frederik, jetzt funktioniert es!

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

Anzeige
Re: Das klappt jetzt, aber ...
05.08.2002 11:33:52
Frederik Fuhrmann
Klar, dann musst du einfach schreiben:

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


Laufzeitfehler
05.08.2002 11:44:00
amb_mr
Ich erhalte jetzt einen Laufzeitfehler 13 (Typen unverträglich) bei folgendem VBA-Code:

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?

Re: Laufzeitfehler
05.08.2002 11:59:40
Frederik Fuhrmann
Hallo!


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

Anzeige
Re: Laufzeitfehler
05.08.2002 12:12:06
JürgenR
Hallo Zusammen,

ich würde umgekehrt vorgehen, um zu vermeiden dass der Hidden-Befehl ggfs. 45 Mal ausgeführt wird:

Gruß
Jürgen

Ich nerve ...
05.08.2002 12:24:11
amb_mr
Sorry, Frederik,

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

Anzeige
Re:
05.08.2002 12:35:12
amb_mr
Hallo Jürgen,
danke für Deinen Ansatz.
Meine Schuld, das Problem nicht richtig geschildert zu haben:

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

Re:
05.08.2002 12:40:39
JürgenR
Hi,

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

Anzeige
Re:
05.08.2002 12:48:40
Yeah!!!
Das ist es, Jürgen. VIELEN DANK!!!

Frage im Nachgang:
Wofür steht eigentlich in "If Cells(i, 4)" die 4?

Danke im voraus,
MArco

Für D = 4. Buchstabe im ABC o.T.
05.08.2002 12:53:28
JürgenR
.
Weiteres Problem
05.08.2002 13:46:53
amb_mr
Wenn die Formeln in Spalte D auf ein anderes Tabellenblatt verweisen, funktioniert der Code nicht mehr.

Was muss ich tun?

Re: Weiteres Problem
05.08.2002 13:53:06
JürgenR
Hi,

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

Re: Weiteres Problem
05.08.2002 14:04:17
amb_mr
Jau, klappt!
Aber wieso "zusätzlich"?
Ich kann mir doch den vorhergehenden Sub "Worksheet_change" jetzt sparen, oder?

Danke nochmal für Deine super Hilfe!

Gruß, Marco

Anzeige

239 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige