Texfelder eine Zelle auslesen, eine ausfüllen bis Spalte leer

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Holistiker.

    Texfelder eine Zelle auslesen, eine ausfüllen bis Spalte leer

    Hallo liebe Excel Experten,
    ich versuche gerade ein Excel Makro zu erstellen.
    Ich habe eine Liste mit beliebig vielen Einträgen in der A-Spalte.
    Nun möchte ich das ein Textfeld der Wert in der Ai-Zelle ausliest und der User die Ei-Zelle befüllen kann.
    Mit dem klick auf NächstesFeld soll dann das selbe mit der i+1 zeile passieren. Jeder versuch eine Schleife zu schreiben endet damit das alle Zeilen mit dem ersten Eintrag ausgefüllt werden.
    Die Idee ist das man z.B. eine Liste mit Produkten in Spalte A hat und die Farben in E Einträgt.
    Danke für die Hilfe
    Hier der Code:

    Quellcode

    1. Private Sub NaechsterEintrag_Click()
    2. Dim m As Long
    3. Dim n As Long
    4. letzte_Zeile = Range("A" & Rows.Count).End(xlUp).Row
    5. n = 2 'Prüfe welche Zelle leer ist und damit noch nicht beschrieben
    6. If Cells(n, "E").Value <> "" Then
    7. n = n + 1
    8. End If
    9. For m = n To letzte_Zeile
    10. 'Zeige den Wert der Zelle an und mach es Schreibgeschützt
    11. Me.TextBox1.Text = Tabelle1.Cells(m, 1).Value
    12. TextBox1.Enabled = False
    13. 'User tägt Daten in Spalte E ein
    14. Tabelle1.Cells(m, 5).Value = TextBox5.Value
    15. Next m
    16. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Makro-Beginner“ ()

    Also wenn ich richtig verstanden habe was du möchtest, sollte das so vollkommen ausreichen:

    Es werden nacheinander alle Produkte abgefragt wo aktuell noch keine Farbe hinterlegt ist.
    Sollte der Nutzer einfach nur "Enter" drücken ohne einen Wert eingegeben zu haben, wird mit dem Goto wieder auf die Inputbox gesprungen und der User kann solange nicht zum nächsten Feld hüpfen, bis ein Wert eingegeben wurde.
    Sollten Null Werte okay sein, einfach das goto rausnehmen.




    Visual Basic-Quellcode

    1. Dim Eingabe As String
    2. For i = 2 To Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row
    3. If Tabelle1.Cells(i, 2).Value = "" Then
    4. vonvorne:
    5. Eingabe = InputBox("Bitte Farbe eingeben:", Tabelle1.Cells(i, 1).Value)
    6. If Eingabe <> "" Then
    7. Tabelle1.Cells(i, 2).Value = Eingabe
    8. Else
    9. GoTo vonvorne
    10. End If
    11. End If
    12. Next i