Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

dynamisch generierte Userform

dynamisch generierte Userform
10.04.2006 13:57:06
Cold
Hallo liebe Excel-Freunde.
Ich hab seit kurzem verstanden wie man eine Userform komplett per modul erzeugen kann. Klappt auch alles soweit prima.
Steuerelemente hinzufügen geht auch.
So nun zu meinem Problem. Habe ich per Modul ein neues Steuerelment eingefügt kann ich ihm nichts zuweisen
z.Bsp.

Sub CommandButton1_Click()
MsgBox ("Nur ein Test")
End Sub

Wenn ich nun die Schaltfläche "Entfernen" betätige soll die eingefügte ComboBox und der CommandButton "Entfernen" wieder verschwinden.
Stelle auch noch Datei zur Verfügung.
https://www.herber.de/bbs/user/32750.xls
für Lösungsansätze wäre ich äußert verbunden
gruß TC

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dynamisch generierte Userform
10.04.2006 15:01:51
Peter
Hallo Cold,
ich nehme an, du musst das Klassenmodul des UserForm(ulars) selbst (natürlich ebenfalls per Makro) anlegen und mit den erforderlichen Ereignis-Makros ausstatten.
Vielleicht hat jemand eine bessere Idee, deshalb Frage auf offen gestellt.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: dynamisch generierte Userform
10.04.2006 15:37:01
Cold
das ist mal ein guter ansatz peter nur wie spreche ich bzw. wie lade ich das Klassenmodul ein. soll heißen wie rufe ich eine privste sub die im klassen modul 1 steht auf ? sowas hab ich noch nie gemacht.
hab den quelltext mal überarbeitet
Sub Code_hinzufügen()
Dim frmtemp
Dim sCode As String
Set frmtemp = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)
möglich wäre hier auch (vbext_ct_ClassModule ) was dann ein Klassenmodul erzeugt sieht auch alles prima aus soll nur in der Userform Code erscheinen
sCode = sCode & "

Private Sub cmd1_Click()" & vbLf
'so kann man eine Sub (Makro) ansprechen
sCode = sCode & "   Form_erstellen2" & vbLf
sCode = sCode & "End Sub
" & vbLf
sCode = sCode & "

Private Sub cmd2_Click()" & vbLf
sCode = sCode & "    Unload Me" & vbLf
sCode = sCode & "End Sub
" & vbLf
sCode = sCode & "

Private Sub COMD1_Click()" & vbLf
sCode = sCode & "   Me.Hide" & vbLf
sCode = sCode & "   hinzufügen" & vbLf
sCode = sCode & "End Sub
" & vbLf
sCode = sCode & "

Private Sub COMD2_Click()" & vbLf
sCode = sCode & "    entfernen" & vbLf
sCode = sCode & "End Sub
" & vbLf
'mit der With Anweisung wird nun der Code umgesetzt
With frmtemp.CodeModule
.AddFromString sCode
End With
'damit nicht jedesmal wenn man die UF aufruft eine abgespeichert wird
'löschen wir sie zum Schluss wieder
ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=frmtemp
End Sub
mhmm bin bald mit meinem latein am ende
gruß TC
Anzeige
AW: dynamisch generierte Userform
10.04.2006 15:41:26
Peter
Hallo Cold,
mal als Ansatz:
Sub NewUserFormCode()
Dim txt As String
txt = "

Private Sub CommandButton2_Click()" & Chr(10) & Chr(10) & _
"   MsgBox ""bin angenommen worden.""" & Chr(10) & Chr(10) & _
"End Sub
"
With ThisWorkbook.VBProject
With .vbcomponents("UserForm1").CodeModule
.addfromstring txt
End With
End With
End Sub
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: dynamisch generierte Userform
Cold
hallo Peter
ja spitzen sache funzt super!!!!
"mal faß aufmacht!!!"
so nun soll aber auch die hinzugefügten elemente wieder entfernt werden und der dazu gehörige code.
geht ja mit remove aber wie?
hast du auch dafür nen ansatz?
grüße TC
Anzeige
AW: dynamisch generierte Userform
10.04.2006 16:14:00
Peter
Hallo Cold,
also: so weit so gut - toll.
Für das Löschen müsste ich jetzt in die Recherche (ich würde Google und dann "Modul löschen" site:herber.de eingeben) gehen, denn so aus dem Stand habe ich da nichts parat.
Versuch doch mal dein Glück.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: dynamisch generierte Userform
10.04.2006 21:08:21
Peter
Hallo Cold,
so könnte es gehen:
Public

Sub UserFormCode_loeschen()
With ThisWorkbook.VBProject.VBComponents("UserForm1").CodeModule
.DeleteLines 1, .CountOfLines
End With
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige