VBA und Controls

Hallo,
hab ne blöde Frage *g*

hab mir eine Word-Datei (2002) von Arbeit nach zu hause gemailt weil ich hier weiter an meiner UserForm arbeiten möchte.

Nun habe ich auf der UserForm einige Controls die ich auch als solches ansprechen möchte (zb hinzufügen bei Laufzeit). Leider bringt er einen Fehler dass das nicht geht („Projekt oder Bibliothek nicht gefunden“) und er markiert mit ein „Dim C as Control“ dabei.

Nun weiß ich dass da nen Verweis fehlen dürfte. Nur - welcher?

LG Tobi@s

Hallo Tobias,

hab mir eine Word-Datei (2002) von Arbeit nach zu hause
gemailt weil ich hier weiter an meiner UserForm arbeiten
möchte.

sehr schön, das freut deinen Chef :smile:

Nun habe ich auf der UserForm einige Controls die ich auch als
solches ansprechen möchte (zb hinzufügen bei Laufzeit). Leider
bringt er einen Fehler dass das nicht geht („Projekt oder
Bibliothek nicht gefunden“) und er markiert mit ein „Dim C as
Control“ dabei.

*hmmh* die Feherlermeldung könnte auf was anderes hindeuten,
Probier mal

Dim C as Object
oder nur
Dim C

Nun weiß ich dass da nen Verweis fehlen dürfte. Nur - welcher?

Du sagst du hast Word-Vba? Dann brauchst du keinen Verweis auf Word-Objekte.

Oder liegt was anderes vor, Zugriff auf Word von Excel aus oder so?

Zeige mal deinen Code.

Gruß
Reinhard

Hallo Reinhard,

sehr schön, das freut deinen Chef :smile:

mal schauen :smile:

*hmmh* die Feherlermeldung könnte auf was anderes hindeuten,
Probier mal

Dim C as Object
oder nur
Dim C

Keine Besserung

Nun weiß ich dass da nen Verweis fehlen dürfte. Nur - welcher?

Du sagst du hast Word-Vba? Dann brauchst du keinen Verweis auf
Word-Objekte.

Oder liegt was anderes vor, Zugriff auf Word von Excel aus
oder so?

Nein, ich arbeite hier nur mit Word und nur mit der UserForm.

Zeige mal deinen Code.

Private Sub cmdNeuab\_Click()
Dim C As Control, Zähler As Integer
Eins = Empty

For Each I In Controls
 If Right(I.Name, 2) = "ab" And I.Name "cmdNeuab" Then
 Zähler = Mid(I.Name, Len(I.Name) - 2, 1)
 If Zähler = 5 Then
 MsgBox "Mehr Zeilen gehen nicht einzufügen.", 64
 Exit Sub
 End If

 If Left(I.Name, 1) = "t" Then 'TextBox
 CID = "Forms.TextBox.1"
 ElseIf Left(I.Name, 1) = "c" Then 'combobox
 CID = "Forms.ComboBox.1"
 End If

 Set C = Controls.Add(CID)
 C.Left = Controls(I.Name).Left
 C.Top = Controls(I.Name).Top + Controls(I.Name).Height + 3
 C.Width = Controls(I.Name).Width
 C.Height = Controls(I.Name).Height
 C.Name = Left(I.Name, Len(I.Name) - 3) & Zähler + 1 & Right(I.Name, 2)
 If Eins = Empty Then Eins = C.Name
 C.TextAlign = 3
 C.Font.Size = "9"
 Call Füllen
 End If
Next

'Höhe anpassen
ufmEingabe.Height = ufmEingabe.Height + 20
For Each X In Controls
 If Right(X.Name, 2) "ab" And X.Name "cmdNeuab" And Left(X.Name, 5) "Label" Then
 X.Top = X.Top + C.Height + 3
 End If
Next
Controls(Eins).SetFocus
End Sub

Sinn des Ganzen:
ich habe eine UserForm auf der ich einen Bereich „von“ und „nach“ habe. Es geht um Geldfluss und welche Beträge (und wo sie „herkommen“) wohin umgebucht werden sollen.
Dazu habe ich für jeden Bereich einige Textfelder und Comboboxen erstellt in einer Zeile. Nun möchte ich, dass, wenn der Nutzer eine Schaltfläche anklickt, eine neue (leere) Zeile mit (denselben) Steuerelementen erstellt damit der Nutzer eben eine weitere „von“ oder „nach“ Zeile hat (das Code hier ist nur für den „von“ oder „ab“-Bereich zuständig).
Die Steuerelemente sind so formatiert dass am Ende eben immer „ab“ steht (und davor „txt“ und die Bezeichnung und die ZeilenNummer).

Auf Arbeit funktioniert der Code einwandfrei.

Auch stelle ich gerade fest dass er „Right“ „Mid“ etc. nicht erkennt und ich „VBA.“ davor packen muss (was auch nicht sein sollte).

LG Tobi@s

Nun habe ich auf der UserForm einige Controls die ich auch als
solches ansprechen möchte (zb hinzufügen bei Laufzeit). Leider
bringt er einen Fehler dass das nicht geht („Projekt oder
Bibliothek nicht gefunden“) und er markiert mit ein „Dim C as
Control“ dabei.
Nun weiß ich dass da nen Verweis fehlen dürfte. Nur - welcher?

Hallo Tobi@s,

schau mal ob du diese Verweise hast:

Visual Basic For Applications
Microsoft Excel 9.0 Object Library
OLE Automation
Microsoft Office 9.0 Object Library
Microsoft Forms 2.0 Object Library

(9.0 ist die Version, 9.0=XL2000 usw.)

Und/oder vergleiche die Verweise auf der Arbeit und Zuhause.

Gruß
Reinhard

Hallo Reinhard,

diese habe ich alle „aktiviert“. Ändert sich nix dran. Arbeit kann ich jedoch erst am Montag wieder gucken.

LG und schönes WE erst einmal
Tobi@s