Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1204to1208
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

User Form und Parameter

User Form und Parameter
HansP
Hallo!
Ich bin mit der User Form nicht so vertraut. Wie kann ich mehrere Checkboxen einbauen, die dann nach dem anklicken, immer das selbe Makro ansteuern, aber unterschiedliche Parameter übergeben?
Beispiel: Ich klicke 3 Checkboxen an und starte mein Makro. Mein Makro startet übernimmt den Wert von Checkbox1 und läuft durch. Dann startet mein Makro von vorn und übernimmt den Wert von Checkbox2 und läuft durch. Mein Makro startet wieder von vorn und übernimmt den Wert von Checkbox3.
Vielen Dank für die Hilfe!

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

Betreff
Benutzer
Anzeige
mehr Infos bitte
05.03.2011 12:46:25
Matthias
Hallo
... übernimmt den Wert von Checkbox1 und läuft ...
Welcher Wert?
Wo stehen die jeweiligen Werte?
Wie kommen die Werte dorthin?
Also was passiert ganau, wenn z.B. für Checkbox1 und Checkbox3 der Haken gesetzt ist.
Schreibst Du dann irgendwo je einen Wert hin, den Du nun weiterverarbeiten willst?(Zahl,Text,Wahrheitswert?)
Ich kann mir noch nix richtiges darunter vorstellen.
Gruß Matthias
hier mal ein Minibeispiel ...
05.03.2011 12:54:39
Matthias
Hallo
wie bereits geschrieben, ich habe noch keinen richtige Vorstellung was Du machen möchtest
Evtl. hilft das schon als Einstiegshilfe
https://www.herber.de/bbs/user/73847.xls
Gruß Matthias
Anzeige
AW: hier mal ein Minibeispiel ...
05.03.2011 13:11:46
HansP
Die Werte der Checkboxen sind fest.
Beispiel: Checkbox1 = "Kundenexemplar"; Checkbox2 ="Vertrieb", Checkbox3 = "Lager".
So und dann mal im PseudoCode
Wenn Checkbox1 aktiv dann
Setze Parameter1 = "Kundenexemplar"
Makro1 ausführen (in Makro1: Öffne Datei %Parameter1%)
Nächste Checkbox
Wenn Checkbox2 aktiv dann
Setze Parameter1 = "Vertrieb"
Makro1 ausführen
Nächste Checkbox
Wenn Checkbox3 aktiv dann
Setze Parameter1 = "Lager"
Makro1 ausführen
...
Eventuell bräuchte ich auch ein Eingabefeld in der Userform (Name Sachbearbeiter)
Ist es so etwas verständlicher.
Andersrum: Ich könnte auch das Makro 4 mal schreiben, und den jeweiligen Parameter fest reinschreiben. Aber das wäre ja mittelschwerer Wahnsinn beim pflegen des Makros. ;-)
Anzeige
AW: hier mal ein Minibeispiel ...
05.03.2011 13:22:04
Oberschlumpf
Hi Hans
Der Wert einer Checkbox kann nur TRUE oder FALSE sein.
Das, was du meinst, ist der von dir verwendete Name, bzw das, was du in die Caption-Eigenschaft einer Checkbox schreibst.
Dann kannst du meine Makros so einsetzen:
Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
makro CheckBox1.Caption
End If
If CheckBox2.Value = True Then
makro CheckBox2.Caption
End If
If CheckBox3.Value = True Then
makro CheckBox3.Caption
End If
End Sub

Sub makro(ByVal chbxname As String)
If chbxname = "Kundenexemplar" Then
'hier alle Befehle wenn für CheckBox1 Haken gesetzt ist
End If
If chbxname = "Vertrieb" Then
'hier alle Befehle wenn für CheckBox2 Haken gesetzt ist
End If
If chbxname = "Lager" Then
'hier alle Befehle wenn für CheckBox3 Haken gesetzt ist
End If
End Sub

Meine Makros machen nun genau das, was (leider erst) nach deiner 2. Beschreibung passieren soll.
1. mit Klick auf Button wird geprüft, bei welchen Checkboxen der Haken gesetzt wurde
2. nur wenn Haken gesetzt, werden die jeweils zuständigen Befehle ausgeführt.
Hilfts nun?
Ciao
Thorsten
Anzeige
AW: hier mal ein Minibeispiel ...
05.03.2011 13:29:24
HansP
Ah, ok. Sagte ja DAS Userform ist für mich noch recht unbekannt. Werde das Beispiel mal in ein vereinfachtes Testmakro einbauen.
Erstmal vielen Dank an alle für die Hilfe!
AW: User Form und Parameter
05.03.2011 13:01:05
Christian
Hallo Hans,
nehmen wir mal an, deine Checkboxes in dem Userform heißen "CheckBox1" bis "CheckBox3" und der Start erfolgt über den "CommandButton1"
Dann zB so:
im Modul des Userform's:
Option Explicit
Private Sub CommandButton1_Click()
If Me.CheckBox1 Then Call MyMacro(1)
If Me.CheckBox2 Then Call MyMacro(2)
If Me.CheckBox3 Then Call MyMacro(3)
End Sub
Und in einem allg. Modul:
Option Explicit
Sub MyMacro(lngVal As Long)
MsgBox lngVal
End Sub
Gruß
Chrstian
Anzeige
AW: User Form und Parameter
05.03.2011 13:01:36
Oberschlumpf
Hi Hans
Wenn das Makro nicht sofort mit Klick auf eine Checkbox starten soll, dann musst du zusätzlich einen Commandbutton einbauen.
Und im Klick-Ereignis des Buttons steht dann dieser Code:
Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
makro CheckBox1.Name, CheckBox1.Value
End If
If CheckBox2.Value = True Then
makro CheckBox2.Name, CheckBox2.Value
End If
If CheckBox3.Value = True Then
makro CheckBox3.Name, CheckBox3.Value
End If
End Sub

An das Makro muss der Name der Checkbox übergeben werden, damit das Makro weiß, welche Checkbox ausgewertet werden soll.
Der Wert der Checkbox muss nicht ans Makro übergeben werden, da das Makro eh nur bei dann gestartet wird, wenn Haken gesetzt.
Und das Makro selbst kann dann so aussehen:
Sub makro(ByVal chbxname As String)
If chbxname = "CheckBox1" Then
'hier alle Befehle wenn für CheckBox1 Haken gesetzt ist
End If
If chbxname = "CheckBox2" Then
'hier alle Befehle wenn für CheckBox2 Haken gesetzt ist
End If
If chbxname = "CheckBox3" Then
'hier alle Befehle wenn für CheckBox3 Haken gesetzt ist
End If
End Sub

Hilfts?
Ciao
Thorsten
PS es heißt übrigens DAS Userform(ular) und nicht die Userform
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige