|
*Schwer* OnClick-Ereignis zur Laufzeit erstellen & zuwei
|
| Autor |
Nachricht |
SeppelFred
Gast
Verfasst am: 17. Jul 2008, 12:18 Rufname:
|
|
| Version: Office 2003 |
|
Ich habe folgendes Problem:
Ich ertelle checkBoxen und ScrollBars während das Programm läuft, wenn ein bestimmter Button geklickt wird. Soweit, so gut. Jetzt soll allerdings der checkBox ein onClick-Ereignis zugeordnet werden. Ist checkBox.Value = True, soll die ScrollBar mit der selben Nr. Enabled = True sein, wenn checkBox False, dann scrollBar = false.
Dazu habe ich diese Sub:
| Code: | Private Sub ccheckBox1_Click()
scrollBar1.Enabled = checkBox1.Value
End Sub | Die checkBoxen werden erstellt:
| Code: | ' Checkbox erstellen
Auswahl.Select
With Auswahl.Range("C" & reiheNeu)
Set objCheckBox = ActiveSheet.OLEObjects.Add _
(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=.Left + Int(11 / 2), Top:=.Top + Int(11 / 2), Width:=11, _
Height:=11)
End With
objCheckBox.Placement = xlMoveAndSize
With objCheckBox.Object
.Caption = ""
End With
Edit.Select | Die scrollBar wird erstellt:
| Code: | ' Scrollbar erstellen
Auswahl.Select
With Auswahl.Range("D" & reiheNeu)
Set objScrollBar = ActiveSheet.OLEObjects.Add _
(ClassType:="Forms.ScrollBar.1", Link:=False, _
DisplayAsIcon:=False, Left:=.Left + 1, Top:=.Top + 1, Width:=.Width - 1, _
Height:=.Height - 1)
End With
objScrollBar.LinkedCell = "$E$" & reiheNeu
objScrollBar.Placement = xlMoveAndSize
With objScrollBar.Object
.Max = 120
.Value = 100
.LargeChange = 20
.SmallChange = 10
End With
Edit.Select | Das ist ja auch kein Ding! Aber...
1) ...wie kann ich jetzt das onClick-Ereignis von oben (cb1_Click()) für jede neuerstellte checkBox zuordnen?
2) ...wie kann ich die onClick-Sub so gestalten, dass sie für jede checkBox allgemeingülltig wird? Also ein und dieselbe Sub für alle checkBoxen, die anhand ihres eigenen Namens dann die zugehörige scrollBar sucht und aktiviert / deaktiviert.
Frage 1 ist mir am wichtigsten!!! Ich wäre über eine Hilfe extrem dankbar...
| Nachtrag: SeppelFred am 17. Jul 2008 um 12:32 hat folgendes geschrieben: | Zur allgemeinen Info, auch wenn es wahrscheinlich jedem schon klar geworden ist:
Die Variable reiheNeu beinhaltet einen integer wert, der zuvor errechnet wird um die Zeile ermittelt, in die die neue checkBox und scrollBar eingefügt werden.
Wenn die Click-Sub funktioniert würde natürlich bei Erstellen der scrollBar der Wert für .Enabled auf false gesetzt, damit sie erst aktiv wird, wenn die checkBox aktiviert wurde. |
|
|
rita2008
Im Profil kannst Du frei den Rang ändern
Verfasst am: 17. Jul 2008, 14:34 Rufname:
Wohnort: Berlin
|
|
| Version: Office 2003 |
|
Hallo, Du bist wohl im falschen Forum. Dein Code betrifft Excel, wir sind hier in Access.
_________________ mfg Rita
Antworten bitte hier im Forum, nicht als private Nachricht. Danke
|
|
-Dani-
Gast
Verfasst am: 17. Jul 2008, 15:15 Rufname:
|
| |
| Version: Office 2003 |
|
Es gibt eine Möglichkeit, für die zur Laufzeit erstellten Steuerelemente zu verarbeiten...
Indem man ein Klickereignis definiert und dort unterscheidet, welches Element gewählt wurde...
Dazu muss man aber ne eigene Klasse definieren und diese zur Laufzeit einbinden....
geht also nicht so ohne weiteres...
andere Möglichkeit....du schreibst pro Steuerelement den Code.....
Dann Verweis setzen auf "Visual Basic for Application Extensibility"
dann wäre das soetwas wie:
| Code: |
Sub Create_Event_Procedure()
Dim wbBook As Workbook
Dim wsSheet As Worksheet
Dim cdModule As VBIDE.CodeModule
Dim lnEvent As Long
Dim BTN As OLEObject
Set wbBook = ThisWorkbook
Set wsSheet = wbBook.Worksheets(2)
'button einbinden
Set BTN = wsSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False) 'Left:=142.5, Top:=63, Width:=51, Height:=15).
With BTN
.Name = "BTN"
.Left = 142
.Top = 63
.Width = 51
.Height = 15
End With
Set cdModule = wsSheet.Parent.VBProject.VBComponents(wsSheet.CodeName).CodeModule
lnEvent = cdModule.CreateEventProc("Click", BTN.Name)
With cdModule
.InsertLines lnEvent + 1, "msgbox thisworkbook.path"
End With
Set wbBook = Nothing
Set cdModule = Nothing
Set wsSheet = Nothing
Set BTN = Nothing
End Sub
|
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
| |

|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Excel Auswertungen: Diagramm erstellen mit Daten aus verschiedenen Zellen |
10 |
snoopy75 |
126 |
28. Mai 2010, 10:38 Thomas Ramel  |
 |
Excel VBA (Makros): CSV-Datei mit VBA erstellen inkl 2 Nachkommastellen??? |
7 |
MichaelB. |
341 |
08. März 2010, 11:24 MichaelB.  |
 |
Excel Auswertungen: Tabelle erstellen aus csv - Datei |
10 |
guybrush89 |
330 |
25. Feb 2010, 16:55 guybrush89  |
 |
Excel Auswertungen: Lagerliste erstellen |
5 |
mr.herden |
4727 |
10. Jan 2010, 11:57 Gast  |
 |
Excel Formate: Pulldown-Auswahlfeld erstellen - wie? |
6 |
AndyKl |
1747 |
07. Jan 2010, 10:07 < Peter >  |
 |
Excel VBA (Makros): per vba in Word Textfeld erstellen und Daten übergeben |
2 |
berlinCalling |
960 |
13. Sep 2009, 15:55 berlinCalling  |
 |
Excel Formeln: Wertetabelle mit einer Funktion erstellen + Diagramm.... |
3 |
Skorp-M@ster |
3679 |
29. Jan 2009, 00:08 svenna80  |
 |
Excel Hilfe: Drag & Drop-Funktion in Excel |
11 |
coldplaygirl86 |
2061 |
13. Jan 2009, 11:52 coldplaygirl86  |
 |
Excel Auswertungen: Makro hängt bei 1.Aufruf & Problem mit Datenreihen |
2 |
Lanjan |
308 |
14. Nov 2008, 14:56 Gast  |
 |
Excel VBA (Makros): Speichern & das gespeicherte Arbeitsblatt wieder schlies |
1 |
nicksen |
114 |
02. Sep 2008, 11:22 nicksen  |
 |
Excel VBA (Makros): Blattschutz & Farbe ändern |
6 |
Gast_21 |
420 |
21. Jul 2008, 11:06 Gast_21  |
 |
Excel Formeln: Werte aus Zellen kopieren & ohne leere Zellen auflisten |
7 |
Thunfisch |
845 |
28. Feb 2008, 15:40 Gast  |
| |
|