Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

For Schleife für Übertrag Combobox in Tabelle
#1
Hallo zusammen,

neuer Tag, neue Frage...

Ich habe eine Userform mit 15 Comboxen, dann 15 DTPicker, dann nochmal 15 DTPicker und nochmal 15 Comboboxen:

Also Combobox 1          DTPicker1            DTPicker16            Combobox 16             und das ganze eben 15mal...

Mit folgendem Code habe ich die Werte der ersten Zeile übertragen:

Dim lngErste As Long
    With Sheets("Urlaubsplan")
    ' letzte freie Zeile in Spalte AW finden
    lngErste = Application.CountA(.Columns(49)) + 4
    ' jeweils prüfen ob Name ausgefüllt dann Übertrag
    If ComboBox1.Value <> "" Then
        .Range("AW" & lngErste).Value = ComboBox1.Value
        .Range("AX" & lngErste).Value = DTPicker1.Value
        .Range("AY" & lngErste).Value = DTPicker16.Value
        .Range("AZ" & lngErste).Value = ComboBox16.Value
    End If

Nun komm ich mit meinem Wissen allerdings nicht weiter wie ich das ganze mit einer Schleife so abändern kann dass er mir das für die 15 Einträge macht.

Ich weiss dass ich mit 

for i = 1 to 15
und dann das i irgendwie zu den jeweiligen Comboboxen und DTPickern hinzufügen muss, aber ich bekomms einfach nicht hin.

Kann mit hier jemand weiterhelfen?

Vielen Dank und schöne Grüße

Thomas
Antworten Top
#2
Hallo Thomas,

das geht mit der Controlsauflistung:
For i = 1 To 15
 Me.Controls("Combobox" & i)
 Me.Controls("DTPicker" & i)
 Me.Controls("DTPicker" & i + 15)
 Me.Controls("Combobox" & i + 15)
Next i
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Thomas78
Antworten Top
#3
Hallo Uwe,

danke für die Info. Habs jetzt folgendermaßen probiert:

Dim lngErste As Long
Dim i As Integer

    With Sheets("Urlaubsplan")
    ' letzte freie Zeile in Spalte AW finden
    lngErste = Application.CountA(.Columns(49)) + 4
    ' jeweils prüfen ob Mitarbeitername ausgefüllt dann Übertrag

    For i = 1 To 15
            If "ComboBox" & i <> "" Then
            .Range("AW" & lngErste).Value = Me.Controls("Combobox" & i)
            .Range("AX" & lngErste).Value = Me.Controls("DTPicker" & i)
            .Range("AY" & lngErste).Value = Me.Controls("DTPicker" & i + 15)
            .Range("AZ" & lngErste).Value = Me.Controls("Combobox" & i + 15)
    Next i
        
    End With
   
    End Sub


Dann kommt aber Fehler beim kompilieren : Next ohne for

bin ich komplett auf dem Holzweg? (wahrscheinlich schon...)

Schöne Grüße Thomas
Antworten Top
#4
Hi Thomas,

ioch würde vor das "Next i" erst mal ein "End If" einfügen.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • Thomas78
Antworten Top
#5
Hallo Ralf,

ohje manchmal sieht man aber auch echt den Wald vor lauter Bäumen nicht.

Vielen Dank !

Schöne Grüße Thomas
Antworten Top
#6
Jetzt hab ich aber das Problem das er mir die Daten überschreibt.

Wenn ich nur einen Zeile in der Userform ausfülle übernimmt er die einwandfrei.
Wenn ich mehrere Zeilen in der Userform ausfülle übernimmt er mir nur die letzte.

Thomas

P.S. hat sich glaub ich erledigt:

Hab bei lngErste das +i vergessen

P.P.S

Nö das ist es auch noch nicht ganz
Antworten Top
#7
Hallo Thomas,

.Range("AW" & lngErste + i - 1).Value =

Der Ausdruck
If "ComboBox" & i <> "" Then
funktioniert bei Dir wirklich?

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Thomas78
Antworten Top
#8
Hallo Uwe,

ahh vielen Dank!

Ich habe das if auf 

If Me.Controls("ComboBox" & i) <> "" Then

abgeändert, so funktionierts.

Schöne Grüße Thomas
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste