|
*Pro* Click-Ereignis zur Laufzeit zuordnen / erstellen
|
| Autor |
Nachricht |
SeppelFred
Gast
Verfasst am: 17. Jul 2008, 13:29 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.
Enable/Disable Sub:
| Code: | Private Sub checkBox1_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 (ccheckBox1_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.
reiheNeu einthält übrigens eine Integer Zahl, der Zielzeile, die vorher berechnet wird.
|
|
SeppelFred
Gast
Verfasst am: 17. Jul 2008, 13:42 Rufname:
|
| |
| Version: Office 2003 |
|
Habe mein googeln gerade etwas interessantes gefunde und jetzt dazu eine Frage bzw. Anregung...:
Wäre es möglich eine eigene Klasse (checkBoxMod) du deklarieren, die selbst vom Typ checkBox ist, sich sozusagen selbst davon ableitet oder von ihr erbt. Für diese Klasse würde standardmäßig eine bestimmte click-Aktion festgelegt, sodas jedes erstelltes Objekt des Typs checkBoxMod automatisch auch das click-Ereignis hat, das die Scrollbar aktiviere/deaktivieren kann!?!?
|
|
Lukas Mosimann
Excel sehr gut, VBA sehr gut

Verfasst am: 17. Jul 2008, 15:01 Rufname: Lukas
Wohnort: CH-Pfaffnau
|
|
| Version: Office 2003 |
|
Hallo
Ich denke, hiermit kannst du vielleicht schon mal was "vorprogrammieren": http://www.office-loesung.de/ftopic220336_0_0_asc.php
Ich möchte dir ja nicht die Diplomarbeit schreiben - deshalb mache ich hier auch nicht alles fertig. Aber ich werde dich gerne unterstützen ...
Viele Grüsse
Lukas
_________________ Der Optimist sieht in jedem Problem eine Aufgabe.
Der Pessimist sieht in jeder Aufgabe ein Problem.
|
|
TypMens
Im Profil kannst Du frei den Rang ändern
Verfasst am: 17. Jul 2008, 15:07 Rufname:
|
|
| Version: Office 2003 |
|
das ding habe natürlich schon vor- und rückwärts durch. aber mit checkBox funktioniert das einfach nicht. zumindest nicht so wie es dort vorgemacht wird. zudem ist das nur ein teil der arbeit. ein recht kleiner teil. ich hab schon mein 269 zeile zusammen und noch weitere in einer anderen tabelle. ich brauche nur die deklaration die mit
| Code: | | Public WithEvents cmdCheckBox As CheckBox |
schon nicht funktioniert. dann verstehe ich noch nicht, wie die verknüpfung funktioniert.
|
|
Lukas Mosimann
Excel sehr gut, VBA sehr gut

Verfasst am: 17. Jul 2008, 15:14 Rufname: Lukas
Wohnort: CH-Pfaffnau
|
| |
| Version: Office 2003 |
|
Hallo
Hast du mir mal einen Code, mit dem es funktioniert hat? Dann können wir auf diesen aufbauen ...
Viele Grüsse
Lukas
_________________ Der Optimist sieht in jedem Problem eine Aufgabe.
Der Pessimist sieht in jeder Aufgabe ein Problem.
|
|
TypMens
Im Profil kannst Du frei den Rang ändern
Verfasst am: 17. Jul 2008, 15:18 Rufname:
|
|
| Version: Office 2003 |
|
| wie kann ich denn mal die ganze datei hochladen? bzw. schick mir eine mail mit von einer adresse, an die ich die mappe schicken kann
|
|
Lukas Mosimann
Excel sehr gut, VBA sehr gut

Verfasst am: 17. Jul 2008, 15:29 Rufname: Lukas
Wohnort: CH-Pfaffnau
|
|
| Version: Office 2003 |
|
Hallo
Ein ganz simples Beispiel:
Leere Userform mit folgendem Code:
| Code: | Option Explicit
Dim Test As New clsCheckBox
Private Sub UserForm_Activate()
Set Test.chbCheckbox = Me.Controls.Add("Forms.CheckBox.1")
End Sub |
Klassenmodul clsCheckBox mit folgendem Code:
| Code: | Option Explicit
Public WithEvents chbCheckbox As MSForms.CheckBox
Private Sub chbCheckbox_Change()
MsgBox ("asdf")
End Sub |
Liegt der Fehler vielleicht an MSForms.CheckBox?
Viele Grüsse
Lukas
_________________ Der Optimist sieht in jedem Problem eine Aufgabe.
Der Pessimist sieht in jeder Aufgabe ein Problem.
|
|
TypMens
Im Profil kannst Du frei den Rang ändern
Verfasst am: 17. Jul 2008, 15:41 Rufname:
|
|
| Version: Office 2003 |
|
ist es ein muss, dass das immer mit einer userform gemacht wird? ich möchte das nämlich eigentlich ohne machen. ich habe das ohne versucht, aber einen fehler erhalten
Fehler beim Kompilieren:
Benutzerdefinierter Typ nicht definiert
[ok] [hilfe]
|
|
TypMens
Im Profil kannst Du frei den Rang ändern
Verfasst am: 17. Jul 2008, 15:42 Rufname:
|
|
| Version: Office 2003 |
|
also mein code dazu wäre:
Tabelle Auswahl:
| Code: | Option Explicit
Dim Test As New clsCheckBox
Private Sub btnX_Click()
Set Test.chbCheckbox = Me.Controls.Add("Forms.CheckBox.1")
End Sub |
Klassenmodul Klasse1:
| Code: | Option Explicit
Public WithEvents chbCheckbox As MSForms.CheckBox
Private Sub chbCheckbox_Change()
MsgBox ("asdf")
End Sub |
|
|
TypMens
Im Profil kannst Du frei den Rang ändern
Verfasst am: 17. Jul 2008, 15:49 Rufname:
|
|
| Version: Office 2003 |
|
würde mir den code für die Tabelle "Auswahl" eher so vorstellen:
| Code: | Option Explicit
Dim Test As New clsCheckBox
Private Sub btnX_Click()
Auswahl.Select
With Auswahl.Range("C" & reiheNeu)
Set Test.chbCheckbox = ActiveSheet.OLEObjects.Add("Forms.CheckBox.1") _
(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=.Left + Int(11 / 2), Top:=.Top + Int(11 / 2), Width:=11, _
Height:=11)
End With
Edit.Select
End Sub |
doch der selbe fehler kommt immer noch
|
|
TypMens
Im Profil kannst Du frei den Rang ändern
Verfasst am: 17. Jul 2008, 15:53 Rufname:
|
|
| Version: Office 2003 |
|
| jetzt hab ich nur noch eine typenunverträglichkeit
|
|
TypMens
Im Profil kannst Du frei den Rang ändern
Verfasst am: 17. Jul 2008, 16:07 Rufname:
|
| |
| Version: Office 2003 |
|
also ich habe jetzt folgendes gemacht:
Klasse (myCheckBox):
| Code: | Option Explicit
Public WithEvents chbCheckbox As MSForms.CheckBox
Private Sub chbCheckbox_Change()
MsgBox (Me.chbCheckbox.Value)
End Sub |
Tabelle (Auswahl):
| Code: | Option Explicit
Dim Test As New myCheckBox
Private Sub btnX_Click()
Auswahl.Select
With Auswahl.Range("C8")
Set Test.chbCheckbox = 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
Edit.Select
End Sub |
Jetzt ist noch der Fehler:
"Laufzeitfehler '13':
Typen unverträglich"
[ok] [hilfe]
|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Excel Formate: Kalender erstellen |
1 |
matze911 |
253 |
31. März 2010, 11:04 Klaus-Dieter  |
 |
Excel VBA (Makros): Outlook Aufgabe aus Excel Tabelle erstellen |
2 |
Schanzo |
1160 |
24. Feb 2010, 12:46 manuel_bo  |
 |
Excel Auswertungen: math. Funktion aus Datenreihe erstellen? |
1 |
Robson83 |
213 |
30. Jan 2010, 16:06 Thomas Ramel  |
 |
Excel Hilfe: Belegungsplan in Excel erstellen? |
12 |
Gast |
2127 |
11. Jan 2010, 20:43 chris791  |
 |
Excel Auswertungen: kombinationsdiagramm zu erstellen |
1 |
shvictor |
321 |
01. Mai 2009, 00:20 Zero  |
 |
Excel VBA (Makros): sheet erstellen in ein vorhandenes workbook |
4 |
methode |
216 |
20. Aug 2008, 13:11 methode  |
 |
Excel Auswertungen: Säulendiagramm erstellen und Anzeige der %-Werte |
2 |
Falcon |
1137 |
05. Jun 2008, 08:05 Falcon  |
 |
Excel Hilfe: Liga-Spielplan erstellen |
2 |
Hansilein |
9087 |
14. Dez 2007, 22:18 yx  |
 |
Excel Formeln: Erstellen einer Tabelle mit automatisch ausfüllenden Werten |
2 |
Mikkato |
219 |
27. Aug 2007, 15:18 Mikkato  |
 |
Excel VBA (Makros): Warnungsfenster erstellen |
5 |
Little Bird |
616 |
13. Apr 2007, 11:01 Little Bird  |
 |
Excel Auswertungen: Formular in Excel erstellen |
4 |
bblues |
33524 |
24. März 2006, 13:48 Gast  |
 |
Excel VBA (Makros): PDF per Makro erstellen |
1 |
FD |
926 |
21. März 2006, 11:44 c0bRa  |
| |