Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
748to752
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
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
dynamische Userform
28.03.2006 19:45:34
Cold
hallo zusammen!
ich bin hier ziemlich neu (mein erster Beitrag) und hab mal ne Frage!
Es ist ja möglich eine userform dynamisch zu erzeugen.
z.B.

Private Sub UserForm_Initialize()
Dim lbl1 As MSForms.Label
Set lbl1 = Me.Controls.Add("Forms.Label.1", , True)
With lbl1
.Top = 6
.Left = 9
.Width = 90
.Height = 18
.Caption = "Hallo Welt"
End With
End Sub

nun die Frage ist es möglich dies auch per makro anzusprechen, so dass wenn ich die userform lade nur noch die jeweilige sub aufrufe.
ich weiß das ich dafür eine biblothek brauche
"Microsoft Visual Basic x.0 Extensibility" die ich auch über die verweise lade.
vielleicht hat ja jemand einen Ansatz oder gar ne Lösung für mich

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

Betreff
Datum
Anwender
Anzeige
AW: dynamische Userform
28.03.2006 20:16:29
Cold
jup chris in der art hab ich was gesucht hilft mir auf alle fälle erst mal weiter.
ich schau mir mal den code genauer an weil die userform nicht unbedingt erzeugt werden muß sondern nur deren Inhalt aber das ist schon mal supi ;-)
danke chris für die diese schnelle Hilfe
Cold
AW: dynamische Userform
28.03.2006 20:22:40
ChrisL
Hallo
ach so... bedeutend einfacher

Sub t()
Dim lbl1 As MSForms.Label
Load UserForm1
Set lbl1 = UserForm1.Controls.Add("Forms.Label.1", , True)
With lbl1
.Top = 6
.Left = 9
.Width = 90
.Height = 18
.Caption = "Hallo Welt"
End With
UserForm1.Show
End Sub

cu
Chris
Anzeige
AW: dynamische Userform
28.03.2006 20:33:50
Cold
ohla ja das ist wesentlich kürzer aber lässt sich dann eigentlich der Commandbutton noch ansprechen und kann ich den auch in eine eigene sub schreiben.
z.B.
Sub t()
Dim lbl1 As MSForms.Label
Dim cmd1 As MSForms.CommandButton
Load UserForm1
Set lbl1 = UserForm1.Controls.Add("Forms.Label.1", , True)
With lbl1
.Top = 6
.Left = 9
.Width = 90
.Height = 18
.Caption = "Hallo Welt"
End With
Set cmd1 = UserForm1.Controls.Add("Forms.Label.1", cmd1, True)
With cmd1
.Top = 25
.Left = 9
.Width = 90
.Height = 18
.Caption = "drück mich"
End With
sCode = "

Private Sub cmd1_Click()" & vbLf
drück_mich
sCode = sCode & "End Sub
" & vbLf & vbLf
UserForm1.Show
End Sub
Sub drück_mich()
sCode = sCode & " MsgBox ""Wert aus der Label: "" & lbl1.Text" & vbLf
End Sub
so in der Art
Gruß Cold
Anzeige
AW: dynamische Userform
28.03.2006 20:50:51
ChrisL
Hallo
Dafür musst du vermutlich den VBA-Code in das entsprechende Klassenmodul schreiben. Mittels VBA möglich, aber habe den Code nicht zur Hand. Bist aber eher wieder bei der ersten Variante angelangt mit VBProject.VBComponents oder ähnlich.
Tip: Forumssuche ;-)
Gruss
Chris
AW: dynamische Userform
Cold
naja irgendwie muss ja auch Leben in die Form die soll ja was machen aber hilfreich war das alle mal ich werd mal schauen ob ich was find und wenn nicht kann ich ja auch mit withevents in der userform die button ansprechen. ich werd morgen mal ein bißchen rumprobieren und wenn ich ne lösung hab (oder denk eine zu haben) poste ich sie hier mal.
Danke chris
bis denne Cold
Anzeige
AW: dynamische Userform
01.04.2006 16:54:52
Cold
so liebe Forum-Gemeinschaft
nachdem ich die letzten Tage mich durch den Code gewusselt habe und dann auch noch was zum Laufen kriegte dachte ich mir warum sollte ich das anderen vorenthalten.
https://www.herber.de/bbs/user/32522.xls
Da kann man sich mal anschauen was ich meinte. Danke an dieser Stelle an Chris der mir nützliche Tipps und Beispiele geben konnte.
Wenn jemand noch was weiß zu dem Thema nur her damit.
so dann ein schönes Wochenende
TCold

11 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige