online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon BenjaminM vom 10.05.2022, 12:03 Options

Via Userform Eintrag suchen, kopieren und Inhalte löschen

Hallo @ all,

Ich brauche eure Hilfe.

Ich möchte über eine Userform Name und Vorname in einer Excel (2007)Datenbank (Tabelle1) suchen, den Eintrag (komplette Zeile) kopieren, Daten dann in Tabelle2 einfügen & dann den Datensatz aus der Tabelle1 löschen.

Wollte dies über den Makrorecorder aufzeichnen, bekomme es aber nicht hin!

Hat jemand dafür eine Lösung (VBA)?

MfG Benjamin


Antwort schreiben

Antwort 1 von Beverly vom 10.05.2022, 12:23 Options

Hi Benjamin,

verwende zum Suchen den Befehl Find (in der VBA-Hilfe zu finden unter "Find-Methode")

Bis später,
Karin

Antwort 2 von BenjaminM vom 10.05.2022, 14:09 Options

Hallo Karin,

da haben wir ja schon 2 Themen...

Hab zwar schon vorher was gefunden in der VBA Hilfe, bekomme damit aber nix auf die Reihe!

Hier mal ein Bsp. wie ich mir das vorstelle, aber mir fehlt da noch alles!
Wollte halt nur gerne so ne Map haben damit ich nicht immer 2400 Datensätze per Hand durchsuchen muss. Da kommt aber auch wieder was mit Abhängigkeiten von Combos ins Spiel, und ich habs immer noch nicht so drauf mit den Codes!

Hast du evtl. (oder auch wer anderes) die Möglichkeit mir was zu bauen? Will nicht schmarotzen, aber mir fehlen halt noch soviel Zusammenhänge.
Bastle mir immer irgendwie was zusammen damit es funtz!
Hierzu hab ich aber leider noch garnichts.
Und weiß auch nicht ob das geht wie ich mir das vorstelle!

Ich würde gerne in Combobox1 nach den Anfangsbuchstaben (alphabetisch) aus Spalte "B" suchen, dann in Combobox2 die Namen filtern die mit den Buchstaben in CB1 übereinstimmen,
und dann in CB3 die Vornamen gefilter bekommen.
Wenn ich dann den Betreffenden Eintrag habe, diesen kopieren, Zeile löschen und in Tabelle2 den Datensatz aus der Zwischanablage in die letzte freie Zeile einfügen.

Ist das Machbar?
MfG Benjamin

Antwort 3 von Beverly vom 10.05.2022, 14:59 Options

Hi Benjamin,

machbar ist mit VBA (fast) alles, aber dazu sollte man schon die entsprechenden Kenntnisse besitzen. Nichts für ungut, aber ich würde an deiner Stelle erst einmal mit "kleineren Brötchen" anfangen - das was du vorhast, grenzt an Auftragsprogrammierung und so etwas macht eine Softwarefirma für teuer Geld.

Wenn du mit Find nicht klar kommst - es gibt noch die Möglichkeit, das Tabellenblatt per Autofilter zu filtern - das kannst du mit dem Makrorekorder aufzeichnen und anstelle der beim Aufzeichnen fest eingetragenen Filterkriterien setzt du dann den Inhalt deiner ComboBoxen. Das alles schreibst du in das Change-Ereignis der 1. bzw. 2. ComboBox.

Das Kopieren kannst du ebenfalls mit dem Makrorekoerder aufzeichnen, nur dass du dann anstelle der festen Zeilenbezeichnung der Zielzeile eine variable für die erste freie Zeile der Zieltabelle setzt. Die erst freie Zeile in Spalte A kann man z.B. auf diese Weise feststellen:
Dim loLetzte As Long
With Worksheets("Zieltabelle")
    loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
End With


Bis später,
Karin

Antwort 4 von BenjaminM vom 12.05.2022, 15:29 Options

Hallo Karin,

okay, dann werd ich versuchen kleiner Brötchen zu backen.

Hab jetzt etwas gebastelt, und das mit dem Sortieren haut schon hin!

Aber ich komme ´mit der Find Methode nicht klar!
Hab nun einige Beiträge gelesen, jedoch funtz das bei mir nicht!

Wie muss ich so eine Find Methode denn aufbauen?
Hab da mir einiges zusammen gesucht, aber ganz rund ist das alles nicht!
Bekomme nun die Datensätze nicht in meine Combobox (oder sollte ich da mit nem Listenfeld arbeiten?).

Kannst du mir da noch mal helfen?
Und die Sache mit dem rauskopieren und einfügen in "Tabelle3", krieg ich mit dem Makrorecorder auch nicht auf die Reihe, weil ich die Klicks in der Userform nicht aufzeichnen kann.

Wäre nett wenn du mir noch mal zur Hand gehen könntest.

Hier die Datei, mit dem was ich hab.

MfG & vielen Dank
Benjamin

Antwort 5 von fedjo vom 13.05.2022, 16:42 Options

Hallo Benjamin,
hab in deiner Datei: Sortieren eine neue UserForm angelegt.
Auswahl nach Name dann Auswahl nach Vorname.
Daten in Tabelle3 eintragen.
Zeile löschen.
Man kann natürlich auch die Befehle (Auswahl, Eintragen, Löschen)
noch miteinander verbinden.

Gruß
fedjo

Antwort 6 von BenjaminM vom 25.05.2022, 15:03 Options

Hallo Fedjo,

hab versucht deine Datei in meine einzubauen, bin aber scheinbar zu blöd.
Ich wollte gerne deinen Code in diese Datei einbauen.
Und über den Combobutton "Saustritt" auf TB "Auswahl" starten, jedoch fehlen mir dann die RowSources.

Könntest du mir da helfen?

MfG Benjamin

Antwort 7 von fedjo vom 25.05.2022, 18:55 Options

Hallo Benjamin,
so ganz klar sind mir deine Angaben nicht.
Auf welchen TB stehen die gesuchten Namen Vornamen?
Auf welchen TB sollen die Namen, Vornamen eingetragen werden?

Gruß
fedjo

Antwort 8 von BenjaminM vom 26.05.2022, 10:29 Options

Hallo Fedjo,

die Datei war noch nicht gefüllt, da dies die Testdatei war, sorry.

Die Namen sollen in TB "Schueler" stehen, und in TB "Schueleraustritt" beim Löschen aus TB "Schueler" geschrieben werden.

Hier noch mal die befüllte Datei.

MfG Benjamin

Antwort 9 von fedjo vom 26.05.2022, 18:13 Options

Hallo Benjamin,
habe in deine Datei ein TB "Schueleraustritt" eingefügt. Nach dem Auswählen Namen, Vornamen kann die ganze Zeile in das TB "Schueleraustritt" eingetragen werden.
Die Zeile wird dadurch automatisch gelöscht und der Autofilter zurückgesetzt.
Durch das löschen der Zeile funktioniert natürlich deine Wenn Formel nicht mehr.

Gruß
fedjo

Antwort 10 von BenjaminM vom 27.05.2022, 11:31 Options

Hallo fedjo,

Danke für deine Hilfe, sieht schon gut aus.

Jedoch gibs da noch nen Problem, und zwar:

Comboboxen geben Name und Vorname aus, jedoch beim Klicken auf Eintragen Löschen... löscht und kopiert er alle Einträge mit dem Ausgewählten Vornamen in das TB "SchuelerAustritt"!
Das heißt z.B. bei Name "Becker" Vorname "Finn", löscht er mir auch gleich die Datensätze "Lindemann" und "Scheele" mit dem Vornamen "Finn" !

Kannst du da noch mal drüber schauen?

Und hättest du die Güte dir evtl. noch ein weiteres Problem in der gleichen Datei anzu schauen?
In der Userform1 geben ich Neuzugänge ein, jedoch läuft er da immer auf einen Fehler beim Übertrag vom Formular in die Tabelle "Schueler"!
und zwar hier:

Private Sub ComboBox1_Change()
Dim loZaehler As Long
Dim varBereich As Variant
Dim objWerte As Object
Dim inZeile As Integer
inZeile = ComboBox1.ListIndex + 1
Set objWerte = CreateObject("Scripting.Dictionary")
With Worksheets("Lehrer")
varBereich = Application.Transpose(.Range("B" & inZeile & ":" & .Range("B" & inZeile).End(xlToRight).Address))
End With
For loZaehler = LBound(varBereich) To UBound(varBereich)
If varBereich(loZaehler, 1) <> "" Then objWerte(varBereich(loZaehler, 1)) = 0
Next
ComboBox2.List = objWerte.keys
If ComboBox2.ListCount > 0 Then ComboBox2.ListIndex = 0
Set objWerte = Nothing

End Sub

Fehlermeldung im Debug: " Laufzeitfehler 1004, Anwendungs- oder objektdefinierter Fehler" und es wird die Zeile markiert (Fettgedruckte Zeile)

Weißt du was da falsch ist?

Vielen dank für deine Hilfe.
MfG Benjamin

Antwort 11 von fedjo vom 27.05.2022, 19:32 Options

Hallo Benjamin,
Zitat:
Comboboxen geben Name und Vorname aus, jedoch beim Klicken auf Eintragen Löschen... löscht und kopiert er alle Einträge mit dem Ausgewählten Vornamen in das TB "SchuelerAustritt"!

Sollte jetzt funktionieren.
Zu deinem zeiten Problem melde ich mich morgen wieder.
Gruß
fedjo

Datei

Antwort 12 von BenjaminM vom 28.05.2022, 13:47 Options

Super Jedjo,

Danke!
Jedoch ist mir noch was aufgefallen!

Wenn ich nun mal versehentlich auf den Commandbutton2 klicke löscht er mir alle Eintäge aus der Datenbank in TB "Schueler"!

kann man da noch ne Sicherung einbauen?

Dachte da an sowas:

Application.ScreenUpdating = False
Sheets("schueler").Select
If ComboBox1.Text = "" Then
MsgBox "Bitte Namen auswählen", , "Eingabe Prüfen"
ComboBox1.SetFocus
Exit Sub
End If

If ComboBox2.Text = "" Then
MsgBox "Bitte Vornamen auswählen", , "Eingabe Prüfen"
ComboBox2.SetFocus
Exit Sub
End If

Sheets("Auswahl").Select


Das hab ich jetzt mal in den Code für den Commadbutton3 eingebaut, die MsgBox kommt, doch bei Ok klick Überträgt er trotzdem alle Datensätze wenn nix ausgewählt wird!

Was muss ich da noch reinschreiben damit das Funtz?
Wäre nett, wenn du mir weiter helfen kannst.
Hier noch mal die aktuelle Datei

MfG Benjamin

Antwort 13 von fedjo vom 28.05.2022, 18:43 Options

Hallo Benjamin,
habe den Code in Commandbutton2 etwas geändert.
UserForm schliesen mit Unload , damit sich die Einträge in den ComboBoxen aktualiesieren können, oder gleich beim Daten übertragen, löschen aktualisieren?

Einfach mal testen. Datei

Gruß
fedjo

Antwort 14 von fedjo vom 29.05.2022, 13:54 Options

Hallo Benjamin,
UserForm1 ComboBox1 von Change auf ComboBox1_Click ändern.
In UserForm2 ist keine ComboBox2 vorhanden.
Löschen: ComboBox2.List = objWerte.keys
If ComboBox2.ListCount > 0 Then ComboBox2.ListIndex = 0
Set objWerte = Nothing

Wenn in Spalte A im TB (Schüler) keine Daten vorhanden sind,
dann musst du auch die Codes für Schüler hinzufügen und Schüleraustritt angleichen.

Gruß
fedjo

Antwort 15 von BenjaminM vom 22.06.2022, 14:11 Options

Hallo @ All,
ich hab mein Problem noch immer nicht gelöst!

Fedjos Antwort hab ich nicht umsetzen können (abs nicht verstanden).

Hier noch mal ein Bild
des Fehlers.
Kann mir dabei bitte noch aml jemand helfen und den Code abändern, so das dass Makro nicht mehr auf einen Fehler läuft?

MfG
Benjamin

Antwort 16 von fedjo vom 23.06.2022, 18:19 Options

Hallo Benjamin ,
einfach mal Testen.

Datenbank


Gruß
fedjo

Ähnliche Themen

Inhalte einer Webabfrage per VBA kopieren
intermde  05.04.2009 - 359 Hits - 1 Antwort

Excel letzten Eintrag suchen
Fassiflo  16.06.2009 - 267 Hits - 1 Antwort

listbox inhalte löschen
malibu  08.10.2009 - 160 Hits - 2 Antworten

über Userform datei öffnen und zelle kopieren
liegbar  13.10.2009 - 165 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026