Thema Datum  Von Nutzer Rating
Antwort
30.09.2015 16:27:49 EarlGrey
NotSolved
09.10.2015 17:36:14 BigBen
NotSolved
09.10.2015 18:00:33 Gast62192
NotSolved
Blau Word-VBA: UserForms über Variable ansprechen
12.10.2015 04:34:32 GastO815
NotSolved
13.10.2015 00:49:20 Gast6030
NotSolved

Ansicht des Beitrags:
Von:
GastO815
Datum:
12.10.2015 04:34:32
Views:
1861
Rating: Antwort:
  Ja
Thema:
Word-VBA: UserForms über Variable ansprechen

Deine Antwort ist recht spärlich Gast62192. Dem Quellcode nach ist sie womöglich sogar ein wenig irreführend.

Beim Lesen würde ein Anfänger - und vielleicht sogar ein Fortgeschrittener - denken du hast die Fragestellung nicht richtig erfasst und antwortest an ihr vorbei (wegen dem UserForms.Add, du verstehst?).

 

Für den TE also nun ein wenig ausführlicher:

Option Explicit

Sub Bsp()
  
  'Bedenke:
  ' Bei so etwas besteht immer eine Laufzeitfehler-Gefahr,
  ' also verzichte nicht auf eine Fehlerbehandlung (ich mach's hier nur der Kürze wegen).
  
  'UserForm01 ansprechen ...
  With GetUserFormByName("UserForm01")
    '... und ein bestimmtes Control dieser 
    With .Controls("ComboBox01")
      Call .AddItem("Item001")
      Call .AddItem("Item002")
      Call .AddItem("Item003")
      .ListIndex = 0 'erstes Element auswählen
    End With
    Call .Show
  End With
  
End Sub

'////////////////////////////////////////////////////
'// liefert 'Nothing' wenn die Form weder gefunden noch geladen werden konnte
Public Function GetUserFormByName(Name As String) As Object
  Dim obj As Object
'1.) nachsehen ob die Form bereits geladen wurde
  For Each obj In VBA.UserForms
    If 0 = StrComp(obj.Name, Name, vbTextCompare) Then
      Set GetUserFormByName = obj
      Exit Function
    End If
  Next
'2.) die Form muss geladen werden
  On Error Resume Next
  Set GetUserFormByName = VBA.UserForms.Add(Name) 'kann ggf. 'Nothing' bleiben!
End Function

Dieses Beispiel berücksichtigt nicht mehrere geladene Instanzen ein und derselben UserForm.

Falls Du (EarlGrey) so etwas nutzt, musst Du den Quellcode natürlich diesbezüglich anpassen / erweitern.

 

Gruß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
30.09.2015 16:27:49 EarlGrey
NotSolved
09.10.2015 17:36:14 BigBen
NotSolved
09.10.2015 18:00:33 Gast62192
NotSolved
Blau Word-VBA: UserForms über Variable ansprechen
12.10.2015 04:34:32 GastO815
NotSolved
13.10.2015 00:49:20 Gast6030
NotSolved