Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Alle Userforms nacheinander abarbeiten

Alle Userforms nacheinander abarbeiten
Helmut
Hallo,
wie kann ich alle Userforms in einem Workbook abklappern, ohne die Namen und die Anzahl der integrierten Userforms zu kennen.
For Each ....
Next
Danke im Voraus
Helmut
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Alle Userforms nacheinander abarbeiten
23.06.2010 10:27:55
Oberschlumpf
Hi Helmut

Dim lctrControl As Control
For Each lctrControl In Userform1.Controls
If TypeName(lctrControl) = "TextBox" Then
If TypeName(lctrControl) = "CheckBox" Then
If TypeName(lctrControl) = "Label" Then
'usw
Next

Hilfts?
Ciao
Thorsten
Anzeige
AW: Alle Userforms nacheinander abarbeiten
23.06.2010 10:38:11
Helmut
Danke für die Lösung,
aber damit bin ich eine Stufe zu tief. Ich habe mehrer Userforms, die Anzahl kann variabel sein und die Namen auch (kenne ich im Makro praktisch nicht, weil immer verschieden)
Und jetzt möchte ich mit z. B. "For Each k in Userforms" (Beispiel funktioniert so nicht! )alle Userforms abklappern und dann die Parameter aus jeder einzelnen auslesen
Was mir fehlt ist, wie ich auf eine x-beliebige Anzahl von Userforms, mit unbekannten Namen, frei skalierbar zugreifen kann
Gruß
Helmut
Anzeige
AW: Alle Userforms nacheinander abarbeiten
23.06.2010 10:54:53
Anton
Hallo Helmut,
so vllt:
Code:

Sub b()
  Dim vbcomp As Object, ctl As Object  
  For Each vbcomp In ThisWorkbook.VBProject.VBComponents  
    If vbcomp.Type = 3 Then  
      Debug.Print vbcomp.Name
      For Each ctl In vbcomp.Designer.Controls  
        Debug.Print vbTab & ctl.Name
      Next
    End If  
  Next
End Sub  


mfg Anton
Anzeige
@Helmut @Anton
23.06.2010 11:14:10
Oberschlumpf
Hallo ihr 2!
erst mal...
Ja, Helmut, recht haste - ich hatte nicht bedacht, dass du mehr als 1 UF abfragen willst.
Anton, deine Idee hatte ich auch schon...war dann aber an .Designer.Controls gescheitert, weil ich das gar nicht kannte, und deswegen nicht wusste, wie ich die Controls eines UFs ansprechen kann ;-)
Aber...mir gefiel an dieser Lösung von Anfang an nicht, dass man "dem VBA-Projekt vertrauen muss", da sonst der Code nicht läuft.
Helmut:
Hier nun noch ne andere Idee:
Sub sbUFs()
Dim lctrControl As Control
Load UserForm1
Load UserForm2
For i = 0 To UserForms.Count - 1
For Each lctrControl In UserForms.Item(i).Controls
If TypeName(lctrControl) = "TextBox" Then Beep
If TypeName(lctrControl) = "CheckBox" Then Beep
If TypeName(lctrControl) = "Label" Then Beep
Next
Next
End Sub

Hier muss zwar jedes UF, welches du abfragen willst, vorher geladen sein, aber ich denke (ich hoffe :-) ), dass deine UFs eh geladen sind, bevor du deren Daten in die Tabelle bringen willst, oder?
Auf jeden Fall muss man mit diesem Code dem VBA-Projekt nicht vertrauen.
Hilfts denn?
Ciao
Thorsten
Anzeige
AW: @Helmut @Anton
23.06.2010 11:38:43
Helmut
Hallo,
ich danke Euch für die tollen Lösungen
Gruß
Helmut
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige