AW: Makro der alrltiven Tabelle übergeben
05.12.2019 23:20:14
volti
Hallo Mexcel,
mit Deiner Zusatzinformation (fehlende C5) und onur's berechtigtem Einwand (hatte mich verklickt) denke ich jetzt die Aufgabenstellung richtig verstanden zu haben:
Wenn in C5 eines Blattes ein Wert>0 steht wird die Combobox ausgeblendet und der Unterstellung,
dass es sich bei den Comboboxen um Active-X-Steuerelemente handelt, kann ich Dir folgende Vorschläge machen:
Variante 1 (Makro in Modul2, Trigger in jedem gewünschten Blatt:
In jedes Tabellenmodul einfügen
Private Sub Worksheet_Change(ByVal Target As Range)
Call Ein_Ausblenden(Target)
End Sub
Ins Modul2 einfügen
Option Explicit
Sub Ein_Ausblenden(Target As Range)
'Ein/Ausblenden, wenn in C5 änderung erfolgt
If Target.Address = "$C$5" Then
With ActiveSheet.Shapes("ComboBox1")
If Target.Value > 0 Then
.Visible = False
Else
.Visible = True
End If
End With
End If
End Sub
Die Ein/Ausblendung passiert nur, wenn in C5 eine Änderung erfolgte und nicht nach Änderungen in anderen Zellen!
Variante 2 (Makrocode und Trigger nur einmal im DieseArbeitsmappe:
In DieseArbeitsmappe einfügen
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Ein/Ausblenden, wenn in C5 eines Blattes eine Änderung erfolgt
On Error GoTo Fehler
If Target.Address = "$C$5" Then
With Sh.Shapes("ComboBox1")
If Target.Value > 0 Then
.Visible = False
Else
.Visible = True
End If
End With
End If
Fehler:
End Sub
PS: Beispiel 2 reagiert bei Änderungen in allen Arbeitsblättern. Die On error Anweisung bewirkt, dass evtl. Blätter ohne Combobox keinen Fehler erzeugen.
viele Grüße
Karl-Heinz