Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dynamische Objekte während der Laufzeit abfragen

Frage Entwicklung VB for Applications

Mitglied: erik87

erik87 (Level 1) - Jetzt verbinden

01.06.2010 um 17:20 Uhr, 11844 Aufrufe, 3 Kommentare

Hallo mal wieder,

ich habe heut den ganzen tag daran gesessen um meine dynamisch erstellten Labels, Textboxen und Checkboxen auf ein Click abzufragen. Habe dann nach 4 stunden Probieren rausgefunden das es wohl kein addhandler im VBA von Excel 2007 gibt. Ich muss dazu sagen das ich mich heute erstmals mit Klassen beschäfftigt habe und rein garnicht durch sehe.

ich habe das Beispiel auf dieser Seite Probiert und soweit verstanden:

http://www.online-excel.de/excel/singsel_vba.php?f=57


Allerdings brauche ich keine Buttons abzufragen und wenn ich versuche es auf andere Objecte zu übertragen bekomme ich nur fehlermeldungen..

Beispiel Checkboxen:


'Userform---------------

[...]
Dim oCheckBox1 As clsCheckBox
Dim oCheckBox2 As clsCheckBox
Dim checkbox100
Dim CHkBx As MSForms.CheckBox
'---
Set oCheckBox1 = New clsCheckBox
Set oCheckBox2 = New clsCheckBox
Set oCheckBox1.DieChkBxs = CheckBox1 ' Hier kommt der Fehler: Objekt erforderlich
Set CHkBx = Frame3.controls.Add("Forms.CheckBox.1") 'Positionsbeschreibung
With CHkBx
.Name = "chkbx" & VisPos
.Width = 450
.Height = 15
.Left = 23
.Top = DynTOP
.Caption = TreeView1.SelectedItem
.Value = 1
End With
Set oCheckBox2.DieChkBxs = CHkBx
Set CHkBx = Nothing

[...]
'Modul: clsCheckBox------------------------

Option Explicit
Public WithEvents DieChkBxs As MSForms.CheckBox

Private Sub DieChkBxs_Click()
DieChkBxs.ControlTipText = "Geklickt"
MsgBox "test"
DieChkBxs.BackColor = vbGreen
DieChkBxs.Font.Bold = True
End Sub
Private Sub DerChkBxs_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "Double"
End Sub



Mag jemand mit mir das mal langsam durchkauen und alles schritt für Schritt erklären. Ich weiß nicht ob es wichtig ist aber noch ein wenig zum Programmablauf:


ich habe am linken rand ein treeview, in welchem verschiedene Funktionen stehen. nach dem auswählen einer solchen funktion werden, für jede Auswahl eine Checkbox, 1 Label und eine Textbox nebeneinander, aber pro auswahl untereinander (quasi zeilen weise) in einem Frame erstellt. es sollen bis zu 256 "Zeilen" möglich sein. nun muss ich diese auf ein Click event abfragen um die entsprechenden Berechnungsfunktionen zu starten mit den eingabeparametern der in laufzeit erstellten Objecte. Diese besitzen Standartwerte, welche aber vom benutzer geändert werden können. Das Auslesen der objecte sollte kein Problem darstellen, ich will nur wissen, auf welches geclickt wurde.

Ich hatte auch schon überlegt ein Timer einzubauen und alle 500 ms die erstellten Objecte auf änderung zu überprüfen, das würde das programm aber zusätzlich verlangsamen, es brauch so schon sehr lange für die berechnungen.


Schönen Abend noch
Mit freundlichen Grüßen
Mitglied: erik87
01.06.2010 um 19:08 Uhr
puh, kaum saß ich im auto...

es geht jetzt. Danke, an alle die sich versucht haben zu bemühen
Bitte warten ..
Mitglied: dog
02.06.2010 um 02:47 Uhr
Dann bitte für andere noch erklären woran es lag...
Bitte warten ..
Mitglied: erik87
02.06.2010 um 08:00 Uhr
Moin,

ja, da habe ich Gestern wohl vor "Freude" garnicht mehr dran gedacht. Problem war, das in der oben genannten Internet Präsenz ein Beispiel gegeben war, in dem auch gezeigt wird, das nicht während runtime erstellte Objekte damit identifiziert werden können.

hier nochmal der funktionierende Code für Label´s:

01.
'Klassenmodul -- clsLabel 
02.
 
03.
'Option Explicit 
04.
Public WithEvents LBL As MSForms.Label 
05.
     
06.
Private Sub LBL_Click() 
07.
x = UserForm1.aufruf(LBL.Name) 
08.
End Sub 
09.
     
10.
Private Sub LBL_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 
11.
    MsgBox "Double" 
12.
End Sub
01.
'-- userForm 
02.
 
03.
Option Explicit 
04.
Dim oLBLn(20) As clsLabel 
05.
     
06.
Private Sub UserForm_Initialize() 
07.
Dim i As Integer 
08.
 For i = 0 To 20 
09.
    Dim LBL As MSForms.Label 
10.
    Set oLBLn(i) = New clsLabel 
11.
    Set LBL = Me.Controls.Add("Forms.Label.1", "LBL" & i, True) 
12.
    With LBL 
13.
        .Left = 10 
14.
        .Top = i * 25 
15.
        .Height = 20 
16.
        .Width = 50 
17.
        .Caption = .Name 
18.
    End With 
19.
    Set oLBLn(i).LBL = LBL 
20.
    Set LBL = Nothing 
21.
 Next i 
22.
End Sub 
23.
 
24.
Function aufruf(Lname As String) 
25.
MsgBox Lname 
26.
End Function
Viel Spaß damit

[Edit Biber] Codetaxx. [/Edit]
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MySQL - Abfrage um letzte Einträge unterschiedlicher Objekte zu erhalten?
gelöst Frage von mabue88Datenbanken2 Kommentare

Hallo, ich sitze vor einer SQL-Abfrage, die ich einfach nicht hinbekomme. Folgende Tabelle liegt vor: Nun benötige ich eine ...

JavaScript
JQuery - Daten aus HTML-Oberfläche dynamisch abfragen
gelöst Frage von 94451JavaScript1 Kommentar

Hallo, ich habe eine "Maschinenoberfläche" bei der der Status dynamisch übertragen wird z.B. ein Balken lädt von 0 - ...

Festplatten, SSD, Raid
Laufzeit von Festplatten im RAID anzeigen
Frage von 114801Festplatten, SSD, Raid20 Kommentare

Ich möchte gerne wissen, ob es möglich wäre, die Laufzeit einer Festplatte die sich im RAID befindet auszulesen bzw. ...

Festplatten, SSD, Raid
Laufzeit einer Seagate und WD Festplatte
Frage von srx2010Festplatten, SSD, Raid2 Kommentare

Hi, ich habe mir eine Seagate Surveillance und eine WD Red Festplatte gekauft. Jetzt möchte ich mittels eines SATA ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 2 StundenInternet1 Kommentar

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 9 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 20 StundenWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 22 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless15 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...