Word und die Controls auf einer UserForm

Hallo,

ich möchte für Arbeit ein Tool schreiben.
Problem: ich habe in den verschiedensten Dokumenten UserForms, die eben für das jeweilige Dokument einmalig sind. Jetzt hab ich das Problem dass man diese Eingaben mehrfach vornehmen sollte. Sprich: ich mach meine Eingaben, lasse das Dokument mit diesen Eingaben füllen, drucke das Dokument und möchte nun dass die UserForm „jungfräulich“ neu aussieht und ein neues Dokument über diesen Wege erstellt werden kann.
Am Anfang hab ich jedes Control einzeln löschen lassen über
.Text = „“ etc.
Nun hab ich aber die „Controls“ entdeckt und festgestellt dass man rein theoretisch (und ich bin überzeugt auch praktisch *G*) über eine For-Each-Schleife alle Controls der UserForm ansprechen kann und - je nach Typ - den Inhalt löschen oder den Haken / Punkt entfernen kann. Müsste ja über eine IF-Then-Abfrage gehen. Soweit ist es auch durchdacht und problemlos möglich.
Nun muss ich aber ja der If-Abfrage mitteilen ob es sich nun um ein Kontrollkästchen, ein Textfeld oder ein Optionsfeld handelt (evtl. auch CommandButton wenn die Caption sich im Laufe ändert). Wie bekomme ich nun den „Typ“ heraus?
Also mir gehts nur um die Zeile

"If Control.Typ = ‚Kontrollkästchen‘ Then "

den Rest bekomme ich allein raus (bin schon groß *gg*)

Danke im Voraus
Tobi@s

Hi.

"If Control.Typ = ‚Kontrollkästchen‘ Then "

den Rest bekomme ich allein raus (bin schon groß *gg*)

.Typ gibt’s nicht, aber .Name als String. Wenn Du dann Textfelder z.B. txtEingabe nennst … Left(Control.Name, 3) … :smile:

Gruß Rainer

Also mir gehts nur um die Zeile

"If Control.Typ = ‚Kontrollkästchen‘ Then "

den Rest bekomme ich allein raus (bin schon groß *gg*)

Hi Tobi@s,

müßte auch in Word klappen so wie in Excel:

Private Sub UserForm\_Initialize()
Dim C
For Each C In Me.Controls
 Select Case TypeName(C)
 Case "CommandButton"
 MsgBox "CB"
 Case "TextBox"
 MsgBox "TB"
 Case Else
 MsgBox "kenn ich nicht"
 End Select
Next C
End Sub

Gruß
Reinhard

Also mir gehts nur um die Zeile
"If Control.Typ = ‚Kontrollkästchen‘ Then "
den Rest bekomme ich allein raus (bin schon groß *gg*)

Hi Tobi@s,
da du ja schon groß bist bräuchte ich ja nix mehr zu sagen.
Aber vielleicht willste ja noch nen Tick wachsen.
Google mal nach
ungarische Notation
und benenne deine Steuerelemente auf der UF demenstprechend, also
txtEingabe
txtAusgabe
für Textboxen, dann kannst du easy mit Namensüberprüfung und „Like“ auf bestimmte Steuerelemente zugreifen.
Desweiteren ist ein Code mit txtEingabe txtAusgabe als Namen viel viel leichter zu pflegen und zu verstehen als wenn da textBox1 textBox2 stehen sollte.

Gruß
Reinhard

Hallo Reinhard,

die Notation kenne ich, nur bin ich nicht direkt selbst der jenige der alle UserForms erstellt. Somit brauch ich dass als Tool so allgemein wie möglich.
Werde deinen Code morgen mal ausprobieren :smile:

Danke
Tobi@s