Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Über Userform Daten abfragen und eintragen

Forumthread: Über Userform Daten abfragen und eintragen

Über Userform Daten abfragen und eintragen
14.02.2017 12:23:32
Christian
Hallo zusammen,
ich würde gerne meine Projektliste Anwender freundlich machen.
Hierzu würde ich gerne über eine UserForm (vorhanden) die Spalte A nach einer Zahl abfragen welche in einer Textbox1 in dem Userform eingeben wird, wenn der Wert aus Textbox1 mit dem in Spalte A übereinstimmt, sollen die Werte aus Textbox 2-4 in der gleichen Reihe in andere Spalten geschrieben werden.
Über Hilfe hierzu würde ich mich sehr freuen.
Gruß
Christian
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Über Userform Daten abfragen und eintragen
14.02.2017 14:33:38
Silas
Hallo Christian,
in meinem Beispiel hast du einen Button in der UserForm (CommandButton1). Drückst du diesen nachdem du die Textboxen gefüllt hast, werden die Zahlen aus Textbox 2-4 in die Spalten rechts neben der gefundenen Zelle mit dem Wert aus Textbox 1 gefüllt. Hoffe, das ist, was du willst:

Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 10000
If Cells(i, 1).Value = CInt(UserForm1.TextBox1.Value) Then
Cells(i, 1).Offset(0, 1).Value = UserForm1.TextBox2.Value
Cells(i, 1).Offset(0, 2).Value = UserForm1.TextBox3.Value
Cells(i, 1).Offset(0, 3).Value = UserForm1.TextBox4.Value
Exit For
End If
Next
End Sub
Achtung: Das ganze funktioniert so nur mit ganzen Zahlen!
Grüße
Silas
Anzeige
AW: Über Userform Daten abfragen und eintragen
15.02.2017 07:09:24
Christian
Guten Morgen,
Danke erstmal Silas, ist noch nicht ganz das was ich brauche,
so sieht das ganze bis jetzt bei mir aus aber irgend wie will das nicht,
rivate

Sub Eingabe_Click()
Dim i As Integer
For i = 1 To 10000
If Cells(i, 1).Value = CInt(UserForm2.Projekt.Value) Then
Cells(i, 3) = Datum.Text
End If
Next
Unload Me
End Sub
Also ich möchte das er Spalte A nach dem durchsucht was in der TextBox "Projekt" steht (z.B PS10) wenn er das gefunden hat sollen der Wert aus TextBox "Datum" in Spalte C, Textbox "Quelle" in Spalte N usw geschrieben werden.
Gruß
Christian
Anzeige
AW: Über Userform Daten abfragen und eintragen
15.02.2017 10:41:35
hary
Moin Christian
Kommt der gesuchte Wert nur einmal vor!?
Dann kannst du es so machen.
Dim a As Variant
With Worksheets("Tabelle1") '--Blattname anpassen
a = Application.Match(Projekt.Text, .Columns(1), 0)
If IsNumeric(a) Then
.Cells(a, 3) = Datum.Text
End If
End With

Ansonsten besser mit find/findnext, dann braucht es keine Schleife.
gruss hary
Anzeige
AW: Über Userform Daten abfragen und eintragen
15.02.2017 12:08:52
Christian
Moin hary,
vielen Dank für die Antwort, ich habe das jetzt so gelöst
For i = 1 To 10000
If Cells(i, 1).Value = CInt(Projekt.Value) Then
Cells(i, 13) = Datum.Text
Cells(i, 14) = Quelle.Text
Cells(i, 11) = SonderVH.Text
Cells(i, 12) = EkNetto.Text
Cells(i, 15) = Status.Text
End If
Next
Unload Me
End Sub
Funktioniert auch gut.
Gruß
Christian
Anzeige
;
Anzeige

Infobox / Tutorial

UserForm zur Datenabfrage und -eintragung in Excel


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Stelle sicher, dass du eine UserForm in Excel mit den benötigten Textboxen (Textbox1, Textbox2, Textbox3, Textbox4) und einem CommandButton (z.B. CommandButton1) erstellt hast.

  2. Code für den Button: Füge den folgenden VBA-Code in das Code-Modul der UserForm ein. Dieser Code sucht nach dem Wert in Textbox1 in Spalte A und trägt die Werte aus Textbox2 bis Textbox4 in die entsprechenden Zellen ein.

    Private Sub CommandButton1_Click()
       Dim i As Integer
       For i = 1 To 10000
           If Cells(i, 1).Value = CInt(TextBox1.Value) Then
               Cells(i, 1).Offset(0, 1).Value = TextBox2.Value
               Cells(i, 1).Offset(0, 2).Value = TextBox3.Value
               Cells(i, 1).Offset(0, 3).Value = TextBox4.Value
               Exit For
           End If
       Next
    End Sub
  3. Anpassung der Spalten: Ändere die Offset-Werte, wenn du die Daten in andere Spalten eintragen möchtest.

  4. Testen: Starte die UserForm und teste die Eingabe, um sicherzustellen, dass die Daten korrekt eingetragen werden.


Häufige Fehler und Lösungen

  • Fehler: "Typen unverträglich": Stelle sicher, dass die Eingaben in Textbox1 eine ganze Zahl sind. Andernfalls kannst du den CInt-Befehl anpassen oder eine Fehlerbehandlung hinzufügen.

  • Fehler: Keine Übereinstimmung gefunden: Überprüfe, ob die Werte in Spalte A tatsächlich vorhanden sind und dass du die richtige Textbox verwendest.

  • Fehler: UserForm stürzt ab: Stelle sicher, dass die UserForm korrekt initialisiert ist und dass alle erforderlichen Steuerelemente vorhanden sind.


Alternative Methoden

  • Verwendung von Application.Match: Wenn du nur einen bestimmten Wert suchst, kann der Match-Befehl effizienter sein. Hier ein Beispiel:

    Dim a As Variant
    With Worksheets("Tabelle1") '--Blattname anpassen
       a = Application.Match(TextBox1.Value, .Columns(1), 0)
       If IsNumeric(a) Then
           .Cells(a, 3).Value = TextBox2.Value
       End If
    End With
  • Find-Methode: Für eine flexiblere Suche kann die Find-Methode verwendet werden, die keine Schleife benötigt und schneller arbeitet.


Praktische Beispiele

  • Beispiel 1: Wenn du eine Projektliste hast und nach einem spezifischen Projekt suchst, kannst du den Wert aus einer Textbox (z.B. Projekt) in Spalte A suchen und die entsprechenden Daten in andere Spalten (z.B. Datum, Quelle, etc.) übertragen:

    Private Sub Eingabe_Click()
       Dim i As Integer
       For i = 1 To 10000
           If Cells(i, 1).Value = TextBoxProjekt.Value Then
               Cells(i, 3).Value = TextBoxDatum.Value
               Cells(i, 14).Value = TextBoxQuelle.Value
               ' Weitere Zuweisungen hier
           End If
       Next
       Unload Me
    End Sub
  • Beispiel 2: Wenn du eine große Datenmenge hast, kann die Find-Methode eine bessere Performance bieten.


Tipps für Profis

  • Verwende Option Explicit: Setze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Fehlerbehandlung einbauen: Implementiere eine Fehlerbehandlung, um unerwartete Eingaben zu behandeln.

  • Datenvalidierung: Überlege, ob du eine Datenvalidierung für die Eingaben in den Textboxen hinzufügen möchtest, um sicherzustellen, dass die Benutzer korrekte Werte eingeben.


FAQ: Häufige Fragen

1. Wie kann ich mehrere übereinstimmende Werte finden?
Du kannst die FindNext-Methode verwenden, um alle Übereinstimmungen zu finden, anstatt die Schleife zu verwenden.

2. Was mache ich, wenn ich einen Fehler bei der Ausführung des Codes erhalte?
Überprüfe, ob alle Steuerelemente (Textboxen, Buttons) korrekt benannt und im VBA-Code richtig referenziert sind. Füge gegebenenfalls Debugging-Tools ein, um den Fehler zu lokalisieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige