Anzeige
Archiv - Navigation
1716to1720
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
Zeilen ein- und ausblenden mit Bedingung
24.10.2019 12:44:34
EasyD
Hallo zusammen
kann jemand das Brett vor meinem Kopf entfernen?
Das Problem:
Im Worksheet_change auf dem ersten Blatt öffne ich mir eine Userform wenn der Zellwert ein "nein" enthält.
In der Userform ist eine Combobox1 die mir auf ein zweites Tabellenblatt einen Wert - entweder D E F - schreibt. Wenn die UF geschlossen wird, wird auf das zweite Blatt gewechselt.
Jetzt soll im Worksheet_activate der Tabelle2 mit einer Select Case Anweisung entschieden werden, ob ein gewisser Zeilenbereich ein- oder ausgeblendet ist. Bedingung dafür ist ein Formelergebnis aus Zelle Q42. In dieser Zelle ermittele ich mit einer Wenn-Formel entweder A B oder C und wenn die 3 falsch sind, dann ist das Ergebnis in Q42 der Wert aus Q43 - und der Wert wurde gerade aus dieser Combobox gelesen.
Grundsätzlich funktioniert der Ablauf, aber er macht's nicht mit den richtigen Zeilen.
Die Combobox in der Userform (Tabelle1):
Private Sub CommandButton1_Click()
'den Wert auf Tabelle2 einsteuern
Application.ScreenUpdating = False
Sheets("Tabelle2").Activate
Call Protect_off
If ComboBox1.Value = "A" Then
Sheets("Tabelle2").Range("Q43").Value = "D"
ElseIf ComboBox1.Value = "B" Then
Sheets("Tabelle2").Range("Q43").Value = "E"
Else
Sheets("Tabelle2").Range("Q43").Value = "F"
End If
Call Protect_on
'die UF wieder zu machen
Unload Me
Application.ScreenUpdating = True
End Sub

und dann in Tabelle2:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Call Protect_off
'ActiveSheet.ScrollArea = "A1:A48"
ActiveSheet.ScrollArea = ""
Worksheets(ActiveSheet.Name).Calculate
'zuerst alle Zeilen einblenden
Rows("64:158").EntireRow.Hidden = True
'Dann in Abhängigkeit von Zelle Q42 wieder entsprechenden Bereich einblenden
Select Case Range("Q42").Value
Case "A"
Rows("64:80").EntireRow.Hidden = False
Case "B"
Rows("81:99").EntireRow.Hidden = False
Case "C"
Rows("100:115").EntireRow.Hidden = False
Case "D"
Rows("116:132").EntireRow.Hidden = False
Case "E"
Rows("133:145").EntireRow.Hidden = False
Case "F"
Rows("146:158").EntireRow.Hidden = False
End Select
Call Protect_on
Application.ScreenUpdating = True
End Sub
ich doktere jetzt schon eine ganze Weile rum....
habe die Tabelle2 vor der Aktivierung schon neu berechnen lassen - keine Lösung
Das Formelergebnis in Q42 mit ABCDEF stimmt auch immer, hab's kontrolliert - wenn die Combobox gar nichts schreibt (wenn nicht "nein" ausgewählt in Tabelle1), dann habe ich A B oder C. Schreibe ich was mit der Combobox, dann habe ich D E oder F.
what's the f****ng problem...?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ein- und ausblenden mit Bedingung
24.10.2019 12:46:31
EasyD
Mist - Fehler gemacht beim "Verfremden" des Codes:
die Combobox lautet:
...
If ComboBox1.Value = "D" Then
Sheets("Tabelle2").Range("Q43").Value = "D"
AW: Zeilen ein- und ausblenden mit Bedingung
24.10.2019 13:10:24
fcs
Hallo EasyD,
verwende Range statt Rows für die Zeilenbereiche, dann sollte es funktionieren
LG
Franz
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Call Protect_off
'ActiveSheet.ScrollArea = "A1:A48"
ActiveSheet.ScrollArea = ""
Worksheets(ActiveSheet.Name).Calculate
'zuerst alle Zeilen einblenden
Range("64:158").EntireRow.Hidden = True
'Dann in Abhängigkeit von Zelle Q42 wieder entsprechenden Bereich einblenden
Select Case Range("Q42").Value
Case "A"
Range("64:80").EntireRow.Hidden = False
Case "B"
Range("81:99").EntireRow.Hidden = False
Case "C"
Range("100:115").EntireRow.Hidden = False
Case "D"
Range("116:132").EntireRow.Hidden = False
Case "E"
Range("133:145").EntireRow.Hidden = False
Case "F"
Range("146:158").EntireRow.Hidden = False
End Select
Call Protect_on
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Zeilen ein- und ausblenden mit Bedingung
24.10.2019 13:21:55
EasyD
Nope
leider unverändert.... da würde ich auch echt nicht verstehen warum Range da was ändern sollte...
ich habe die Combobox auch gerade in allen Varianten mehrfach durchgespielt - das Ergebnis für die getroffene Auswahl ist auch jedes mal ein anderes....
AW: Zeilen ein- und ausblenden mit Bedingung
24.10.2019 14:03:58
fcs
Hallo EasyD,
Rows erwartet eigentlich eine Zahl als Parameter für die Zeilen-Nummer
Range erlaubt verschiedene Schreibweisen um einen Zellbereich festzulegen.
Rows("64:89")Entirerow.Hidden=False
Range("64:89")Entirerow.Hidden=False
Verarbeitet der Compiler scheinbar trotzdem korrekt.
Ich habe das Makro mal in eine kleine Testdatei eingebaut - jedoch ohne Userform/Combobox- aber der Wert in Zelle Q42 von "Blatt "Tabelle2" wird per Formel berechnet.
Da funktioniert dein Makro korrekt - keine Ahnung, an welcher Stelle da bei dir etwas schief läuft.
LG
Franz
Anzeige
AW: Zeilen ein- und ausblenden mit Bedingung
24.10.2019 14:20:37
fcs
Hallo EasyD,
hab noch was gefunden. Die Zeile zum aktivieren des Blatts "Tabelle2" muss an ander Stelle stehen.
Erst Werte ändern, dann Blatt selektieren/aktivieren
Private Sub CommandButton1_Click()
'den Wert auf Tabelle2 einsteuern
Application.ScreenUpdating = False
'    Sheets("Tabelle2").Activate
Call Protect_off
If ComboBox1.Value = "A" Then
Sheets("Tabelle2").Range("Q43").Value = "D"
ElseIf ComboBox1.Value = "B" Then
Sheets("Tabelle2").Range("Q43").Value = "E"
Else
Sheets("Tabelle2").Range("Q43").Value = "F"
End If
Call Protect_on
'die UF wieder zu machen
Unload Me
Sheets("Tabelle2").Activate
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Zeilen ein- und ausblenden mit Bedingung
24.10.2019 14:40:58
EasyD
hhmmm... das leuchtet mir im Moment nicht ein, aber ich werd's probieren.
Ich melde mich wieder! Und vielen Dank für die Hilfe erstmal!
AW: Zeilen ein- und ausblenden mit Bedingung
24.10.2019 15:18:28
EasyD
Tatsache!
und ehrlich - da hätte ich mal wieder selbst drauf kommen können.
Wenn ich erst mit Aktivierung des Blattes den Wert in Q43 schreibe, na dann kann natürlich auch nicht während der Aktivierung die entsprechend richtige Select Case Anweisung ansgeführt werden.... vollkommen klar!
Danke für's Erleuchten!
Etwas basteln musste ich trotzdem noch, denn die Nummer mit dem Blattschutz ein und ausschalten war ja auch nicht umsonst. Habe nun die Zelle Q43 einfach entsperrt damit die Combobox ihren Wert auch ohne Aufhebung des Blattschutzes rein schreiben kann... und es funzt wie verrückt!
Beste Grüße!
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige