Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
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
Inhaltsverzeichnis

UserForm VBA Problem...

UserForm VBA Problem...
Ximena
Hallo ihr Lieben!
Ich habe ein ganz komisches Problem. Ich habe ein UserForm, bei dem man eine Zahl zwischen 0 und 3 anklicken kann (Radio-Buttons). Im zweiten Teil des UserForms kann man zwischen Gold, Silver und Bronze wählen (Option-Buttons).
Nun möchte ich kontrollieren, dass wenn man das Kästchen "1" angeklickt hat, dass man dann nur eine Farbe (also entweder Gold oder Silver oder Bronze) anklicken kann. Dementsprechend für 2 und bei 3 muss man halt alle!
Dazu habe ich folgende Codes geschrieben:
Private Sub SimpleGold_Click()
If Simple1.Value = True Then
If SimpleSilver.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If SimpleBronze.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If myClicksSimple > 0 Then
MsgBox "Wrong combination - you can only select one value for SL Category!"
SimpleGold.Value = False
SimpleSilver.Value = False
SimpleBronze.Value = False
Exit Sub
End If
End If
If Simple2.Value = True Then
If SimpleSilver.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If SimpleBronze.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If myClicksSimple > 1 Then
MsgBox "Wrong combination - you can only select one value for SL Category!"
SimpleGold.Value = False
SimpleSilver.Value = False
SimpleBronze.Value = False
Exit Sub
End If
End If
End Sub
Private Sub SimpleSilver_Click()
If Simple1.Value = True Then
If SimpleGold.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If SimpleBronze.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If myClicksSimple > 0 Then
MsgBox "Wrong combination - you can only select one value for SL Category!"
SimpleSilver.Value = False
SimpleBronze.Value = False
SimpleGold.Value = False
Exit Sub
End If
End If
If Simple2.Value = True Then
If SimpleGold.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If SimpleBronze.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If myClicksSimple > 1 Then
MsgBox "Wrong combination - you can only select one value for SL Category!"
SimpleGold.Value = False
SimpleSilver.Value = False
SimpleBronze.Value = False
Exit Sub
End If
End If
End Sub
Private Sub SimpleBronze_Click()
If Simple1.Value = True Then
If SimpleGold.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If SimpleSilver.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If myClicksSimple > 0 Then
MsgBox "Wrong combination - you can only select one value for SL Category!"
SimpleGold.Value = False
SimpleSilver.Value = False
SimpleBronze.Value = False
Exit Sub
End If
End If
If Simple2.Value = True Then
If SimpleGold.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If SimpleSilver.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If myClicksSimple > 1 Then
MsgBox "Wrong combination - you can only select one value for SL Category!"
SimpleGold.Value = False
SimpleSilver.Value = False
SimpleBronze.Value = False
Exit Sub
End If
End If
End Sub
Wenn ich jetzt z.B. die 1 gewählt habe und dann zuerst Bronze anklicke, passiert ja noch nichts, weil ich erst ein Kästchen angeklickt habe. Wenn ich jetzt aber zusätzlich noch Silver anklicke, dann springt er ja in folgendes Sub:
Private Sub SimpleSilver_Click()
Das durchläuft er genau bis
If Simple1.Value = True Then
If SimpleGold.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If SimpleBronze.Value = True Then
myClicksSimple = myClicksSimple + 1
End If
If myClicksSimple > 0 Then
MsgBox "Wrong combination - you can only select one value for SL Category!"
SimpleSilver.Value = False
SimpleBronze.Value = False 'HIER!!!!!!
SimpleGold.Value = False
Exit Sub
End If
Dort wo HIER!!! steht, springt er sofort ins Private Sub SimpleBronze_Click() und macht nicht einfach in "seinem" eigenen Code weiter.
Wieso ist das so? Wie kann ich diesen Fehler beheben?
Oder gibt es noch eine andere Möglichkeit, zu erreichen, was ich möchte?
Wäre echt froh um Hilfe, weil ich hab nicht mal eine Ahnung, wie ich das googeln konnte -.-
Ganz liebe Grüsse
Ximena

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: UserForm VBA Problem...
15.06.2012 15:17:25
guentherh
Hallo Ximena,
durch die Zuweisung auf die Controls löst Du Ereignisse aus insbes. Change. evtl. ist das bei diesen mit identisch.
Mein Weg wäre, in der Form eine Variable zu definieren, die von den Controls hoch-und runtergezählt wird.
Dann kannst Du in den Radiobuttons z.B.
Maxoption=2 

setzen
und in den OptionButtons

if Optioncount 
Gruß,
Günther
AW: UserForm VBA Problem...
15.06.2012 15:23:14
Ximena
Hallo Günther
Danke für deine Antwort. Ich verstehe, was du meinst, aber ich komm nicht drauf, wie ich es umsetzen muss. In welches Sub muss ich das schreiben? Ins Userform_Initialize oder in eines der Buttons?
Ganz liebe Grüsse
Ximena
Anzeige
Nachtrag
15.06.2012 15:29:46
Ximena
Hallo Günther
Ich hab es wie folgt versucht:
Private Sub Simple1_Click()
MaxOption = 1
End Sub
Private Sub Simple2_Click()
MaxOption = 2
End Sub
Private Sub Simple3_Click()
MaxOption = 3
End Sub
Private Sub SimpleGold_Click()
If Optioncount > MaxOption Then
MsgBox "Stopp!"
End If
End Sub
klappt aber nicht :(
Lg ximena
AW: Nachtrag
15.06.2012 15:49:59
guentherh
Hast Du in der Userform die Deklaration vorgenommen
Global Maxoption as integer
Global Optioncount as integer
?
Nochmal Nachtrag
15.06.2012 15:56:05
guentherh
Und die Variablen im Initialize mit 0 belegen
AW: UserForm VBA Problem...
15.06.2012 15:47:36
guentherh
Die Andeutung ist wohl zu versteckt!
Zu deinen RadioButtons jeweils eine Zeile
Maxoption=...  ' von 0..3
Zu deinen Optionbuttons jeweils den anderen Codeteil
von dem bisherigen Code kannst du dann das meiste weglassen
vielleicht solltest Du auch in den Option-Buttons prüfen ob schon zu viele Optionen angewählt sind.
Für den Fall dass die Maxoptions verringert werden obwohl gerade viele Optionen aktiviert sind.
Ist ja nur 'ne Beschreibung des Algorithmus - ich denke Du bist fit genug, den Code selbst hinzukriegen.
Irre ich?
Günther
Wenn Du nicht klarkommst, dánn poste doch eine Datei mit der Form
Anzeige
AW: UserForm VBA Problem...
15.06.2012 15:55:42
Ximena
Hallo Günther
Sorry, aber ich steh echt auf dem Schlauch. Wenn ich zu den RadioButtons MaxOption= schreibe und die Makro mit F8 durchgehe, dann übernimmt er die Variable nicht in die Option-Button-Codes. Er übergibt sie irgendwie nicht...
Ich steh echt total auf dem Schlauch - liegt vielleicht auch am Freitag... Da ich das für meine Arbeit brauche, darf ich dir leiderk eine Datei mit dem Form anhängen. Tut mir Leid! Ich hoffe, du kannst mir trotzdem helfen! Soll ich dir den ganzen Code des UserForms schicken? Oder ein ScreenPrint des Forms machen?
Danke, dass du mir hilfst!
Liebe Grüsse
Ximena
Anzeige
AW: UserForm VBA Problem...
15.06.2012 16:00:30
guentherh
Hatte Deinen Nachtrag nicht gesehen.
hast Du meinen inzwischen gelesen? Sollte zum Problem passen
Solte es noch nötig sein, könntest Du vielleicht eine neue Datei erstellen, in Die du nur die UserForm und die relvanten Module kopierst, keine Daten
Gruß,
Günther
AW: UserForm VBA Problem...
15.06.2012 16:09:32
Ximena
Hallo Günther
Sone Sch*** :D ich komm einfach nicht drauf... Reg mich gerade total über mich selbst auf... Aber deine Idee ist gut. Hab das ganze jetzt seperat in einem Word gespeichert. Ach ja, es handelt sich um ein Word-Dokument, aber das sollte ja eigentlich gleich funktionieren, wie im Excel...
Leider kann ich das File nicht hochladen, da es ein doxm ist und das nicht geht... Wie kann ich es trotzdem hochladen, auch wenn es eine Makro enthält?
Grüsse
Ximena
Anzeige
AW: UserForm VBA Problem...
15.06.2012 16:13:32
guentherh
Hochladen ginge mit Zip
dafür komm ich jetzt nicht an meine Maschine mit Office10...
vielleicht ist noch jemand anders da...
Gruß,
Günther
Variable weitergeben
15.06.2012 16:38:49
Ximena
Mist!
Aber weisst du, wie man innerhalb eines Modules mit verschiedenen Subs Variablen weitergeben kann?
Grüsse
Ximena
AW: Variable weitergeben
15.06.2012 17:07:35
Ximena
Hallo Günther
Gute zugfahrt! Hoffentlich schaust du nächste Woche nochmals vorbeei!!
Danke für deine Datei. Genau so habe ich es gemeint :D nur ist das Problem, dass es zwar im xls aber nicht im word funktioniert... Es ist einfach das Problem, dass die Variable MaxOptions nicht gefüllt, respektive nicht weitergegeben wird! Wie schaffe ich das? Zwischen verschiedenen Subs eines Modules Variablen auszutauschen?
Danke und liebe Grüsse
Ximena
Anzeige
Es funktioniert :D
15.06.2012 17:24:42
Ximena
Jaaaa! Es klappt! Ich habe die Variablen nicht mit Dim ganz oben deklariert!!
Es funzt! Tausend Dank!!
Lg Ximena
Es funktioniert :D
15.06.2012 17:24:43
Ximena
Jaaaa! Es klappt! Ich habe die Variablen nicht mit Dim ganz oben deklariert!!
Es funzt! Tausend Dank!!
Lg Ximena

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige