Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formular ändert Datensatz

Formular ändert Datensatz
27.07.2020 14:29:19
Michel
Liebe Freunde des Tabellenblattes,
ich bin versuche mit mit der Zeit an immer aufwendigeren "Projekten" die mir mein Leben auf Arbeit ein wenig vereinfachen sollen. Da ich leider den Umgang mit VBA noch erlerne, benötige ich mal wieder eure Hilfe.
Ich habe eine Formular gestaltet, womit ich eine Liste ergänzen möchte. Das erste Feld des Formulars ist ein Dropdown-Menü womit ich den Datensatz auswähle, den ich Ergänzen möchte. Dieser steht in dem Tabellenblatt "Übersicht" in der Spalte A2:A1000. Durch die Eingabe in den übrigen Textfeldern und dem anschließenden klicken auf den Comandbutton "Übernehmen" soll der ausgewählte Datensatz ergänzt werden.
Nachfolgenden Code habe ich schon herausbekommen. Wie ich jedoch das mit dem Auswählen des _
Datensatzes hinbekomme weiß ich leider nicht.

Private Sub cbxVOL_Nummern_Change()
Set gefunden = Worksheets("Übersicht VOL_VOB").Range("A2:A1002").Find(cbxVOL_Nummern)
If Not gefunden Is Nothing Then
txtEinkaufswagennummer = gefunden.Offset(0, 1).Value
txtBestellnummer = gefunden.Offset(0, 4).Value
txtBestätigungsnummer = gefunden.Offset(0, 5).Value
txtLieferung_am = gefunden.Offset(0, 9).Value
txtRechnung_vom = gefunden.Offset(0, 10).Value
txtVorgangsnummer = gefunden.Offset(0, 11).Value
End If
End Sub


Private Sub userform_initialize()
Worksheets("Übersicht VOL_VOB").Activate
frmVOL_Liste_ergaenzen.cbxVOL_Nummern.RowSource = "A2:A1002"
End Sub

Ich habe einmal ein Foto vom Formular hochgeladen:
Userbild
Ich hoffe Ihr könnt mir bei meinem Problem helfen.
Vielen Dank schon einmal!
Michel

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formular ändert Datensatz
27.07.2020 14:40:51
Werner
Hallo,
der Code gehört nicht ins Change der Combobox sondern ins Codemodul deines Buttons.
Dim gefunden As Range
If cbxVOL_Nummern.ListIndex > -1 Then
Set gefunden = Worksheets("Übersicht VOL_VOB").Range("A2:A1002") _
.Find(cbxVOL_Nummern, LookIn:=xlValues, lookat:=xlWhole)
If Not gefunden Is Nothing Then
txtEinkaufswagennummer = gefunden.Offset(0, 1).Value
txtBestellnummer = gefunden.Offset(0, 4).Value
txtBestätigungsnummer = gefunden.Offset(0, 5).Value
txtLieferung_am = gefunden.Offset(0, 9).Value
txtRechnung_vom = gefunden.Offset(0, 10).Value
txtVorgangsnummer = gefunden.Offset(0, 11).Value
End If
Else
MsgBox "Fehler: Kein Eintrag ausgewählt."
End If
Set gefunden = Nothing
Gruß Werner
Anzeige
AW: Formular ändert Datensatz
27.07.2020 15:08:53
Michel
Hallo Werner,
ich habe es jetzt folgendermaßen geändert:
Private Sub userform_initialize()
Worksheets("Übersicht VOL_VOB").Activate
frmVOL_Liste_ergaenzen.cbxVOL_Nummern.RowSource = "A2:A1002"
End Sub

Private Sub cmdÜbernehmen_Click()
Dim gefunden As Range
If cbxVOL_Nummern.ListIndex > -1 Then
Set gefunden = Worksheets("Übersicht VOL_VOB").Range("A2:A1002") _
.Find(cbxVOL_Nummern, LookIn:=xlValues, lookat:=xlWhole)
If Not gefunden Is Nothing Then
txtEinkaufswagennummer = gefunden.Offset(0, 1).Value
txtBestellnummer = gefunden.Offset(0, 4).Value
txtBestätigungsnummer = gefunden.Offset(0, 5).Value
txtLieferung_am = gefunden.Offset(0, 9).Value
txtRechnung_vom = gefunden.Offset(0, 10).Value
txtVorgangsnummer = gefunden.Offset(0, 11).Value
End If
Else
MsgBox "Fehler: Kein Eintrag ausgewählt."
End If
Set gefunden = Nothing
End Sub

Aber leider passiert nichts. Ohne userform_initialize habe ich nicht einmal die VOL Nummern im Dopdown. Woran kann das liegen?
Liebe Grüße Michel
Anzeige
AW: Formular ändert Datensatz
27.07.2020 15:21:14
Werner
Hallo,
das Userform_Initialize brauchst du natürlich, dort werden ja die Daten in deine Combobox eingelesen.
Und nach If Not gefunden Is Nothing Then, muss das gerade andersrum sein.
gefunden.Offset(0, 1) = txtEinkaufswagennummer
gefunden.Offset(0, 4) = txtBestellummer
gefunden.Offset(0, 5) = txtBestätigungsnummer
gefunden.Offset(0, 9) = CDate(txtLieferung_am)
gefunden.Offset(0, 10) = CDate(txtRechnung_vom)
gefunden.Offset(0, 11) = txtVorgangsnummer
Gruß Werner
AW: Formular ändert Datensatz
28.07.2020 21:35:46
Michel
Hallo Werner,
anscheinend bin ich zu blöd.
Leider klappt es, trotz der Veränderungen, immer noch nicht.
Vielleicht ist ja mein ganzer Ansatz falsch, weshalb ich kurz beschreibe was ich versuche zu realisieren:
Durch die Combobox wähle ich einen Datensatz aus dem Blatt "Übersicht VOL_VOB" aus. Danach gebe ich die noch fehlenden Daten in die Textboxen ein und dieser inhalt soll in die Splate des ausgwählten Datensatzes gespeichert werden. Gerne auch, dass man schon sehen kann, ob die jeweiligen Zellen schon gefüllt sind.
Einkaufswagennummer steht in Zeile C
Bestellnummer in Zeile D
Bestätigungsnummer in Zeile E
etc.
Ich habe auch schon versucht anhand von Vorlagen es auf anderen Wegen zu realisieren, jedoch hat das überhaupt nicht geklappt.
Liebe Grüße aus dem Norden
Michel
Anzeige
AW: Formular ändert Datensatz
28.07.2020 21:52:58
Werner
Hallo,
dann lade doch mal deine Mappe mit der Userform und ein paar Beispiledaten hier hoch.
Gruß Werner
AW: Formular ändert Datensatz
28.07.2020 22:32:21
Michel
Hallo Werner,
ich musste, datenschutzbedingt, vieles löschen. Jedoch habe ich mein Problem dargelassen ;).
https://www.herber.de/bbs/user/139369.xlsm
Normalerweise sieht die Datei nicht so leer aus.
LG Michel
AW: Formular ändert Datensatz
29.07.2020 11:58:24
Werner
Hallo,
hier deine Beispielmappe mit Code zurück. Die Userform/Textboxen habe ich in der Größe an die Einträge angepasst.
Da du die Userform über RowSource füllst, brauchst du die Find-Funktion nicht, um an den entsprechenden Eintrag in der Tabelle zu kommen.
In der Combobox hat der erste Eintrag den Listindex 0, der zweite den Listindex 1 usw.
Da deine Einträge in der Tabelle lückenlos sind und die Einträge in der Tabelle in Zeile 2 beginnen ist die erste Zeile mit dem Eintrag der Listindex des ausgewählten Comboboxeintrages + 2.
https://www.herber.de/bbs/user/139375.xlsm
Gruß Werner
Anzeige
eine Rückmeldung....
01.08.2020 13:22:58
Werner
Hallo,
...kommt da wohl nicht mehr - so macht helfen richtig Spaß.
Gruß Werner
AW: eine Rückmeldung....
02.08.2020 14:20:47
Michel
Hallo Werner,
ich konnte dir leider erst jetzt antworten, da es die Temperaturen der letzten Tage meine Dachgeschosswohnung zur Sauna gemacht haben und ich dann den PC nicht zur weietren Erwärmung benutzen wollte.
Zum eigentlichen Thema: Das was du mir erstellt/ geschriebn hast trifft es. Ich bin wirklich schwer begesitert. DU hast mir damit sehr geholfen! DANKE!!!!
Wenn du mir überhaupt noch helfen magst, hätte ich nur noch eine Frage bzw. anliegen: Wäre es möglich, wenn ich einen Datensatz aussuche (z.B. VOL 1 ...), dass dann die Textboxen mit den vielleicht bereits ausgefüllten Daten gefüllt werden?
Anzeige
AW: eine Rückmeldung....
02.08.2020 20:50:45
Werner
Hallo,
na ja, besser spät als nie - und das mit der Hitze kann ich sogar nachvollziehen.
Und zu deiner weiteren Frage:
Da kann ich nur sagen häähhh?!?
Das ist doch schon drin.
Wähl doch in der Combobox der Datei von mir den ersten Datensatz aus.
Das ist bis jetzt der einzige Datensatz bei dem in den entsprechenden Zellen Daten vorhanden sind.
Gruß Werner
AW: eine Rückmeldung....
04.08.2020 22:27:19
Michel
Moinsen,
vergiss meine letzten Zeilen. Ich war einfach nur Dumm :). Habe nicht nachgedacht, dass keine Datensatze vorhanden sind, bis auf Nummer 1...
Klappt auf jedenfall super !!!!!!!!
Kann mich garnicht oft genug bedanken für deine Hilfe!
Liebe Grüße
Michel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige