Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
516to520
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
516to520
516to520
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn A1=1 > Dann Schaltfläche 1 anzeigen, sonst ni

Wenn A1=1 > Dann Schaltfläche 1 anzeigen, sonst ni
18.11.2004 12:31:43
Alexander
Hallo zusammen, ich hoffe es kann mir jemand helfen
Es soll in Abhängigkeit des Zellwertes von Zelle A1 jeweils
eine ander Schaltfläche ausgegeben werden.
(((Alternativ könnte es auch die gleiche Schaltfläche, jedoch mit einem Anderem Text und einer anderen Makrozuweisung, sein.)))
Problem:
Wenn "Tabelle1" A1=1 dann Schaltfläche 1 einblenden (zugeordnet Makro1)
Wenn "Tabelle1" A1=2 dann Schaltfläche 2 einblenden (zugeordnet Makro2)
Wenn "Tabelle1" A1=Text dann Schaltfläche 3 einblenden (zugeordnet Makro3)
sonst keine Schaltfläche einblenden
(((Es soll immer nur eine Schaltfläche eingeblendet werden und diese immer an der gleichen Stelle))))
Geht so was ?
Herzlichen Dank für die Hilfe
Gruß Alex

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn A1=1 > Dann Schaltfläche 1 anzeigen, sonst ni
Uduuh
Hallo,
etwa so: (in den Code der Tabelle)

Private Sub CommandButton1_Click()
Select Case Range("A1").Value
Case 1: Call Makro1
Case 2: Call Makro2
Case 3: Call Makro3
End Select
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Select Case Target.Value
Case 1: CommandButton1.Caption = "Makro1"
Case 2: CommandButton1.Caption = "Makro2"
Case 3: CommandButton1.Caption = "Makro3"
End Select
End Sub

Gruß aus'm Pott
Udo

Anzeige
AW: Fehlermeldung - objekt erforderlich
18.11.2004 14:10:46
Alex
Erstmal Herzlichen Dank Udo;
Folgende Formel hab ich jetzt einbebaut (Im Code Tabellenblatt)

Private Sub CommandButton225_Click()
Select Case Range("K106").Value
Case 1: Call Test1
Case 2: Call Test2
Case 3: Call Test3
End Select
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$K$106" Then Exit Sub
Select Case Target.Value
Case 1: CommandButton225.Caption = "Test1"
Case 2: CommandButton225.Caption = "Test2"
Case 3: CommandButton225.Caption = "Test3"
End Select
End Sub

Sub Test1()
Range("AP106").Select
End Sub
Sub Test2()
Range("AP110").Select
End Sub
Sub Test3()
Range("AP113").Select
End Sub
Nun bekomme ich bei Eingabe von 2 (bei 1 und 3 entsprechend)
""Laufzeitfehler 424"" Objekt erforderlich
Debaggehler (ist Gelb markiert nach- Case 2: )
Case 2: CommandButton225.Caption = "Test2"
Wo liegt mein Fehler ?
Spreche ich die "Schaltfläche 225" mit Falschem Namen an ?,
oder was mache ich falsch ?
Lieben Gruß und Danke
Alex
Anzeige
AW: Wenn A1=1 > Dann Schaltfläche 1 anzeigen, sonst ni
Ingolf
Hallo Alex,
folgende 2 Makros müssen im Makro-Editor in den Bereich "Tabelle1", wenn Tabelle1 das Arbeitsblatt ist, in dem die Schaltfläche auftauchen soll.

Private Sub CommandButton1_Click()
If ActiveSheet.CommandButton1.Caption = "Makro1" Then
Modul1.Makro1
ElseIf ActiveSheet.CommandButton1.Caption = "Makro2" Then
Modul1.Makro2
Else
Modul1.Makro3
End If
ActiveSheet.CommandButton1.Delete
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
wks = ActiveSheet
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Left:=120, Top:=0.75, Width:=60, Height:=24.75).Select
wks.Activate
ActiveSheet.CommandButton1.TakeFocusOnClick = False
If Range("A1") = 1 Then
ActiveSheet.CommandButton1.Caption = "Makro1"
ElseIf Range("A1") = 2 Then
ActiveSheet.CommandButton1.Caption = "Makro2"
Else
ActiveSheet.CommandButton1.Caption = "Makro3"
End If
End Sub

Die drei Makros, die über die Schaltfläche gestartet werden, müssen sich dann natürlich in einem Benutzer-Modul mit Namen "Modul1" stehen. Hat das Modul einen anderen Namen, muss dieser in obigem Makro angepasst werden.
Gruß Ingolf
Anzeige
AW: Wenn A1=1 > Dann Schaltfläche 1 anzeigen, sonst ni
18.11.2004 14:46:11
Alex
Hallo Ingolf
Herzlichen Dank für die formel doch es gibt eine Fehlermeldung
Laufzeitfehler 91
Objektvariable oder With-Blockvariable nicht festglegt
Dann (VBA)
((Gelb Markiert))
So steht die Formel bei mir:
folgende 2 Makros sind im Makro-Editor in den Bereich "Jornaleingabe", eingetragen.

Private Sub CommandButton225_Click()
If ActiveSheet.CommandButton225.Caption = "Test1" Then
Modul1.Test1
ElseIf ActiveSheet.CommandButton225.Caption = "Test2" Then
Modul1.Test2
Else
Modul1.Test3
End If
ActiveSheet.CommandButton225.Delete
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
wks = ActiveSheet
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.225", _
Left:=120, Top:=0.75, Width:=60, Height:=24.75).Select
wks.Activate
ActiveSheet.CommandButton225.TakeFocusOnClick = False
If Range("K106") = 1 Then
ActiveSheet.CommandButton225.Caption = "Test1"
ElseIf Range("K106") = 2 Then
ActiveSheet.CommandButton225.Caption = "Test2"
Else
ActiveSheet.CommandButton225.Caption = "Test3"
End If
End Sub

Die drei Makros, die über die Schaltfläche gestartet werden, sind in einem Benutzer-Modul mit Namen "Modul1" eingetragen.
Sub Test1()
Sheets("Jornaleingabe").Select
Range("AP106").Select
End Sub
Sub Test2()
Sheets("Jornaleingabe").Select
Range("AP110").Select
End Sub
Sub Test3()
Sheets("Jornaleingabe").Select
Range("AP113").Select
End Sub
Was mache ich falsch und wie kann ich die Fehlermeldung unterbinden
Herzlichen Dank und liebe Grüße
Alex
Anzeige
AW: Wenn A1=1 > Dann Schaltfläche 1 anzeigen, sonst ni
18.11.2004 14:58:50
Alex
Hallo Ingolf
Herzlichen Dank für die formel doch es gibt eine Fehlermeldung
Bei Eingabe von 1 bis 3 in K106 (((((Tatsächlich wäre K106:L109))))
Laufzeitfehler 91
Objektvariable oder With-Blockvariable nicht festglegt
Dann (VBA Editor)
wks = ActiveSheet((Gelb Markiert))
So steht die Formel bei mir:
folgende 2 Makros sind im Makro-Editor in den Bereich "Jornaleingabe", eingetragen.

Private Sub CommandButton225_Click()
If ActiveSheet.CommandButton225.Caption = "Test1" Then
Modul1.Test1
ElseIf ActiveSheet.CommandButton225.Caption = "Test2" Then
Modul1.Test2
Else
Modul1.Test3
End If
ActiveSheet.CommandButton225.Delete
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
wks = ActiveSheet
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.225", _
Left:=120, Top:=0.75, Width:=60, Height:=24.75).Select
wks.Activate
ActiveSheet.CommandButton225.TakeFocusOnClick = False
If Range("K106") = 1 Then
ActiveSheet.CommandButton225.Caption = "Test1"
ElseIf Range("K106") = 2 Then
ActiveSheet.CommandButton225.Caption = "Test2"
Else
ActiveSheet.CommandButton225.Caption = "Test3"
End If
End Sub

Die drei Makros, die über die Schaltfläche gestartet werden, sind in einem Benutzer-Modul mit Namen "Modul1" eingetragen.
Sub Test1()
Sheets("Jornaleingabe").Select
Range("AP106").Select
End Sub
Sub Test2()
Sheets("Jornaleingabe").Select
Range("AP110").Select
End Sub
Sub Test3()
Sheets("Jornaleingabe").Select
Range("AP113").Select
End Sub
Was mache ich falsch und wie kann ich die Fehlermeldung unterbinden
Liegt der Fehler etwa in der Zellangabe K106 (((ist eigentlich K106:L109)))
In verzweiflung, mit Herzlichen Dank und lieben Grüßen
Alex
Anzeige
Fehler kann ich nicht lösen, bitte um Hilfe
18.11.2004 15:40:58
Alex
Hallo Zusammen
Folgendes Problem: Ich möchte gerne
>> die Schaltflächenmakrozuordnung in Abhängigkeit der Zelleingabe geändert werden Hier die umgearbeitete Formel von Ingolf, (Fehlermeldung am Ende beschrieben)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
So steht die Formel bei mir:
folgende 2 Makros sind im Makro-Editor in den Bereich "Jornaleingabe", eingetragen.
---------------------------------------------------------------------------------

Private Sub CommandButton225_Click()
If ActiveSheet.CommandButton225.Caption = "Test1" Then
Modul1.Test1
ElseIf ActiveSheet.CommandButton225.Caption = "Test2" Then
Modul1.Test2
Else
Modul1.Test3
End If
ActiveSheet.CommandButton225.Delete
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
wks = ActiveSheet
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.225", _
Left:=120, Top:=0.75, Width:=60, Height:=24.75).Select
wks.Activate
ActiveSheet.CommandButton225.TakeFocusOnClick = False
If Range("K106") = 1 Then
ActiveSheet.CommandButton225.Caption = "Test1"
ElseIf Range("K106") = 2 Then
ActiveSheet.CommandButton225.Caption = "Test2"
Else
ActiveSheet.CommandButton225.Caption = "Test3"
End If
End Sub

-----------------------------------------------------------------------------------
Die drei (Test)Makros, die über die Schaltfläche gestartet werden sollen, sind in einem Benutzer-Modul mit Namen "Modul1" eingetragen und lauten wie folgt.
Sub Test1()
Sheets("Jornaleingabe").Select
Range("AP106").Select
End Sub
Sub Test2()
Sheets("Jornaleingabe").Select
Range("AP110").Select
End Sub
Sub Test3()
Sheets("Jornaleingabe").Select
Range("AP113").Select
End Sub
----------------------------------------------------------------------------------
Wenn ich nun in die Zelle K106 eine Eingabe mache, dann erscheint folgende Fehlertafel mit folgendem Makrofehler im Editor:
Laufzeitfehler 91
Objektvariable oder With-Blockvariable nicht festglegt
Dann (VBA Editor)
wks = ActiveSheet((Gelb Markiert))
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Was mache ich falsch und wie kann ich die Fehlermeldung unterbinden
Liegt der Fehler etwa in der Zellangabe K106 (((ist eigentlich K106:L109)))
Die Schaltfläche 225 wird beim Löschen mit dem Makrorekorder als "Button 225" bezeichnet und in Exelfenster als "Schaltfläche 225"! Hat der Fehler damit zu tun ?
Hab alles mögliche schon ausprobiert und komme nicht weiter.
In tiefer Ratlosigkeit und Dank für jede Hilfe
Alex
Anzeige
AW: Fehler kann ich nicht lösen, bitte um Hilfe
Ingolf
Hallo Alex,
da hab ich doch glatt eine entscheidende Kleinigkeit vergessen. Die beanstandete Programmzeile muß natürlich heissen:
Set wks = ActiveSheet
Gruß Ingolf
AW: Fehler bhoben, Danke
19.11.2004 21:14:55
Alex
Hallo Ingolf
Herzlichen Dank, die Formel klappt bestens.
liebe grüße und Dank für deine Mühen
Alex

325 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige