Anzeige
Archiv - Navigation
1160to1164
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
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

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
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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige