Hallo Reinhard,
sehr schön, das freut deinen Chef
mal schauen
*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