Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Zeilen und Tabellenblätter ein- und ausblenden

VBA Zeilen und Tabellenblätter ein- und ausblenden
19.11.2018 08:03:33
Frank
Hallo zusammen,
ich habe folgende VBA-Codes, die beide einzeln funktionieren. Nun möchte ich, dass beide zusammen funktionieren. Könnt ihr mir da bitte helfen?
Wenn auf dem Tabellenblatt "Start" in Zelle "J15" eine 3 ausgegeben wird, dann soll das Tabellenblatt "Erfolgskontrolle" eingeblendet sein, sonst nicht.
Wenn auf dem Tabellenblatt "Start" in der gleichen Zelle ("J15") eine 2 ausgegeben wird, dann sollen die Zeillen 23, 24, und 25 im Tabellenblatt "Start" eingeblendet sein, sonst sollen sie ausgblendet bleiben.
Die Zelle "J15" auf dem Tabellenblatt "Start" wird über Steuerelemente gefüllt.
Vielen Dank
Frank
Hier die Codes dazu:
Private Sub Worksheet_Calculate()
With Range("J15")
' Wenn auf dem Tabellenblatt "Start" "Erfolgskontrolle" ausgewählt wird (wird
' in Zelle "J15" eine 3 ausgegeben), dann wird das Tabellenblatt
' "Erfolgskontrolle" eingeblendet.
If .Value = 3 Then
Worksheets("Erfolgskontrolle").Visible = True
Else
Worksheets("Erfolgskontrolle").Visible = xlVeryHidden
End If
End With
End Sub

Private Sub Worksheet_Calculate()
With Range("J15")
' Wenn auf dem Tabellenblatt "Start" "Realisierungsphase" ausgewählt wird
' (wird in Zelle "J15" eine 2 ausgegeben), dann werden die Zeilen 23, 24 und
' 25 eingeblendet.
If .Value = 2 Then
Range("A23:A25").EntireRow.Hidden = False
Else
Range("A23:A25").EntireRow.Hidden = True
End If
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilen und Tabellenblätter ein- und ausblenden
19.11.2018 09:04:03
hary
Moin
Muss es Calculate sein? Irgendwo aenderst du doch "Realisierungsphase" oder Erfolgskontrolle".
Nimm doch das Change Ereignis.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
If Target.Address(False, False) = "A1" Then 'ggf die Aenderunszelle anpassen
Worksheets("Erfolgskontrolle").Visible = Not Target = "Erfolgskontrolle"
Rows("23:25").Hidden = Not Target = "Realisierungsphase"
End If
End Sub

gruss hary
AW: VBA Zeilen und Tabellenblätter ein- und ausblenden
19.11.2018 11:16:16
Frank
Hallo Harry,
Danke für die Antwort. Nein es muss nicht unbedingt Calculate sein.
Wenn es auch anderst funktioniert.
Auf dem Tabellenblatt "Start" gibt es 3 Steuerelemente "Planungsphase", "Realisierungsphase" und "Erfolgskontrolle". Die Ausgabe dieser Steuerelemente erfolgt in Zelle "J15".
Wenn ich "Planungsphase" auswähle, wird in Zelle "J15" eine "1" ausgegeben.
Wenn ich "Realisierungsphase" auswähle, wird in Zelle "J15" eine "2" ausgegeben und die Zeilen "A23, A24 und A25" sollen eingeblendet werden. (Sonst sollen sie ausgeblendet sein).
Wenn ich "Erfolgskontrolle" auswähle, wird in Zelle "J15" eine "3" ausgeben und das Tabellenblatt "Erfolgskontrolle" soll eingeblendet werden. (Sonst soll es ausgeblendet sein).
Wie kann ich das mit Change-Ereignis umsetzen?
Vielen Dank
Frank
Anzeige
AW: VBA Zeilen und Tabellenblätter ein- und ausblenden
19.11.2018 11:39:02
hary
Moin
Dann versuch es mal so. Code in den Code der Tabelle wo sich J15 aendert.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
If Target.Address(False, False) = "J15" Then
Worksheets("Erfolgskontrolle").Visible = Target = 3
Rows("23:25").Hidden = Not Target = 2
End If
End Sub

Wobei ich vermute Rows("23:25") liegen im Blatt(Start)?, wo sich J15 aendert.
gruss hary
AW: VBA Zeilen und Tabellenblätter ein- und ausblenden
19.11.2018 12:26:30
Frank
Hallo Harry,
wenn ich jetzt in die Zelle "J15" eine 2 oder 3 eintrage und mit Return bestätige geht es.
Aber es funktioniert nicht, wenn ich per Steuerelemente die Zelle "J15" ändern lasse.
Hast du noch eine Idee, wie ich das umsetzen kann?
Viele Grüße
Frank
Anzeige
AW: VBA Zeilen und Tabellenblätter ein- und ausblenden
20.11.2018 08:38:27
hary
Moin
Sind es Formular-oder ActiveX Steuerelemente?
Du kannst auch ein Makro nehmen und dieses mit den Steuerelementen starten.
Zuweisen Makro bei Formularsteuerelementen/ ActiveX mit: Call EinAusBlenden
Sub EinAusBlenden()
With Worksheets("Start").Range("J15")
Worksheets("Erfolgskontrolle").Visible = .Value = 3
Worksheets("Start").Rows("23:25").Hidden = Not .Value = 2
End With
End Sub

gruss hary
AW: VBA Zeilen und Tabellenblätter ein- und ausblenden
20.11.2018 09:57:38
Frank
Hallo Harry,
super funktioniert, vielen Dank!
Deinen Code in ein Modul kopiert, den Formularsteuerelementen das Makro zugewiesen und es läuft.
Vielen herzlichen Dank noch einmal und viele Grüße
Frank
Anzeige

366 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige