Autor
|
Thema: Aktion abhängig von dynamische Checkbox (1275 mal gelesen)
|
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 14. Mai. 2015 14:27 <-- editieren / zitieren --> Unities abgeben:
Hallo, in meinem Makro, wenn man einen Punkt wählt, ist der Punkt bemerkt und gleichzeitig neben dem Punktname-Feld ein Checkbox erstellt. Abhängig von Value dieses Checkbox wird etwas gemacht. Ich kann ein Knopf gestalten, der liest Value von dieses dynamisch erstellten Checkbox, und macht etwas. Die Frage ist, ob man ohne ein extra Knopf das machen kann? Sobald das Checkbox gekreuzt oder umgekehrt, wird der Aktion durchgeführt. Normaleweise kann man so machen, z.B Value von checkbox1 ändert sich, dann wird etwas gemacht. Mein checkbox ist aber dynamisch erstellt, hat deswegen keine festen Identität (also Checkbox 1 bis n, n ist aber dynamisch) Hat jemand ein Idee für irgendeine Lösung? Ich danke mich auf jeder Hilfe. MfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 14. Mai. 2015 16:49 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
Vorab: Deine Problembeschreibung ist praktisch unverständlich. Also: - Du wählst einen Punkt im 3D - als Reaktion darauf erscheint in einem von Dir programmatisch erzeugten Dialog 1) der Punkt als Text 2) eine Checkbox neben dem Punkt-Text - der Dialog besitzt einen(oder mehrere) Command-Buttons. Bisher liest das Makro - nach selektieren des Command-Buttons - den Wert der Checkbox aus und fährt dann im Makro weiter. Soweit richtig? Jetzt willst Du wissen, ob es sofort nach dem 'Check-Box-Click' und ohne den Command-Button geht. Klar: Werte im Click-Event der Check-Box den Value aus. Oder: Trage die Punkte in eine Liste(Listbox) ein. Wird ein Eintrag(Punkt) in der Liste ausgewählt, so arbeitest Du Dein Makro weiter ab. Nachdem ich weder den Dialog noch den Code kenne, kann ich nur raten. Tschau, Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 14. Mai. 2015 18:11 <-- editieren / zitieren --> Unities abgeben:
Hallo joehz, danke für Deine Antwort. Ja, meine Beschreibung war schon subjektiv. Du hast es schon ganz richtig verstanden. Also noch mal für die Info: Jeder gewählte Punkt kriegt schon einen Checkbox. Jetzt möchte ich z.B den Name von ersten und letzten gehakten in einen Textfeld schreiben. Ja, ich kann z.B ein Sub function schreiben: Checkbox1_click() If checkbox1.Value =True then Einen Wert wird zugewiesen Dann abhängig von dem Wert wird etwas gemacht. Das Problem ist aber, die Anzahl von den Checkbox ist nicht bekannt (bei jedem Wahl wird neuer erstellt) Wäre das bekannt, würde ich die Sub function z.B 20 mal schreiben Sub Checkbox1_click() ..... Sub Checkbox20_click() (ein bisschen schlampig ) Kennt Du die Lösung dafür? Ich hoffe dies mal ist es nicht zu unverstandlich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 14. Mai. 2015 19:43 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
Hallo, kopier mal den Code in eine leere Userform mit einem CommandButton(Bild anbei):
Code:
Dim chkBx(4) As MSForms.CheckBox 'global Private Sub CommandButton1_Click() Dim n As Integer For n = 0 To UBound(chkBx) Debug.Print chkBx(n).Value Next ' On Error Resume Next ' For n = 1 To UserForm1.Controls.Count ' Debug.Print UserForm1.Controls.Item(n).Caption ' Debug.Print UserForm1.Controls.Item(n).Name ' Next End SubPrivate Sub UserForm_AddControl(ByVal Control As MSForms.Control) Debug.Print "in addcontrol" End Sub Private Sub UserForm_Initialize() Dim n As Integer For n = 0 To 4 Set chkBx(n) = Controls.Add("Forms.CheckBox.1") chkBx(n).Left = 5 chkBx(n).Top = n * chkBx(n).Height + 5 chkBx(n).Caption = chkBx(n).Name Next Me.Width = 5 * 80 + 10 End Sub
Vielleicht geht's mit einem Control-Array. Tschau, Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 14. Mai. 2015 20:42 <-- editieren / zitieren --> Unities abgeben:
Hi Joe, danke für Deine Antwort. Genau diese CommandButton1 möchte ich sparen Also wenn man Checkbox hakt, wird sofort etwas gemacht, ohne eine weitere Button klicken zu müssen. Aber danke sehr für Deine Hilfsbereitschaft.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 14. Mai. 2015 21:30 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
1. Hast Du das Programm laufen lassen? 2. Das ist m.E. schlechte Programmiertechnik. Wenn Du das falsche Kästchen anklickst, läuft sofort das Makro ab. Du sparst zwar den Button ein, ersparst Dir aber den möglichen Ärger der Falschbedienung nicht. Ich mach's lieber umgekehrt. Tschau, Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 17. Mai. 2015 09:33 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
|
rfriedrich Mitglied
Beiträge: 39 Registriert: 11.05.2005
|
erstellt am: 19. Mai. 2015 08:55 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
|