Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1664to1668
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

VBA Suchen,kopieren

VBA Suchen,kopieren
12.01.2019 14:24:16
Julian
Hallo zusammen,
Ich möchte in einer Tabelle auf Tabellenblatt 2 einen Wert in Spalte A suchen und diesen dann mit den Werte in der gleichen Zeile in Spalte B und C nach Tabellenblatt 1 in die Spalten A B C kopieren.
Bis jetzt habe ich folgenden Code der funktioniert, finde aber keine Möglichkeit mir automatisch die Werte in B und C mit zu kopieren, Ich hoffe mir kann jemand helfen.
Sub SuchenKopieren()
Dim Suche As Range
Dim Eingabe As String
Eingabe = Application.InputBox("Eingabe des Monats")
Set Suche = Worksheets("Tabelle2").Range("A1:A5").Find(Eingabe)
Cells(Suche.Row, Suche.Column).Copy Destination:=Worksheets("Tabelle1").Range("A1")
End Sub

Grüße Julian

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Suchen,kopieren
12.01.2019 14:42:36
Werner
Hallo Julian,
du solltest:
1. eine Prüfung mit einbauen, ob in der InputBox was eingegeben wurde
2. ob die InputBox mit Abbrechen geschlossen wurde
3. die weiteren Parameter von Find mit angeben
4. eine Prüfung einbauen wenn der Suchbegriff nicht gefunden wurde
5. die mit Set gesetzte Variable wieder leeren
Sub SuchenKopieren()
Dim Suche As Range, Eingabe As String
Eingabe = Application.InputBox("Eingabe des Monats")
If Not Eingabe = vbNullString And Not Eingabe = "Falsch" Then
Set Suche = Worksheets("Tabelle2").Range("A1:A5").Find(what:=Eingabe, LookIn:=xlValues,  _
lookat:=xlWhole)
If Not Suche Is Nothing Then
Suche.Resize(, 3).Copy Worksheets("Tabelle1").Range("A1")
Else
MsgBox "Suchbegriff wurde nicht gefunden."
End If
End If
Set Suche = Nothing
End Sub
Gruß Werner
Anzeige
AW: VBA Suchen,kopieren
12.01.2019 14:57:07
Julian
Hallo Werner,
danke das klappt perfekt! Ist es noch irgendwie möglich die Suche danach nochmal zu starten und den dann gefundenen Begriff eine Zeile tiefer zu kopieren?
Gruß
AW: VBA Suchen,kopieren
12.01.2019 15:10:06
Werner
Hallo Julian,
dann so:
Sub SuchenKopieren()
Dim Suche As Range, Eingabe As String
Eingabe = Application.InputBox("Eingabe des Monats")
If Not Eingabe = vbNullString And Not Eingabe = "Falsch" Then
Set Suche = Worksheets("Tabelle2").Range("A1:A5").Find(what:=Eingabe, LookIn:=xlValues,  _
lookat:=xlWhole)
If Not Suche Is Nothing Then
With Worksheets("Tabelle1")
Suche.Resize(, 3).Copy .Cells(.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row, 1)
End With
Else
MsgBox "Suchbegriff wurde nicht gefunden."
End If
End If
Set Suche = Nothing
End Sub
Gruß Werner
Anzeige
AW: VBA Suchen,kopieren
12.01.2019 15:19:03
Julian
Hallo, Danke - genial!
Hast du eventuell auch eine Idee ob das ganze nur über eine InputBox möglich ist sondern einfach wenn ich den Wert in die von mir gewollte Zelle eingebe?
Vielen Dank
Grüße Julian
AW: VBA Suchen,kopieren
12.01.2019 15:34:25
Werner
Hallo Julian,
bitte vorher überlegen was du haben willst. Möglich ist fast alles.
Ich bin jetzt mal davon ausgegangen, dass die Zelle in der du deinen Suchbegriff eingeben willst auf Tabelle2 ist.
Das ist ein Event-Makro und gehört ins Codemodul des Tabellenblattes, auf dem es sich auswirken soll. Hier also Tabelle2.
Rechtsklick auf den Tabellenblattreiter - Code anzeigen und Code rechts ins Codefenster kopieren.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Suche As Range, Eingabe As String
If Target.Address(0, 0) = "H1" Then 'statt H1 deine Zelle für die Eingabe angeben
If Target.Value  "" Then
Eingabe = Target.Value
Set Suche = Range("A1:A5").Find(what:=Eingabe, LookIn:=xlValues, lookat:=xlWhole)
If Not Suche Is Nothing Then
With Worksheets("Tabelle1")
Suche.Resize(, 3).Copy .Cells(.Cells(.Rows.Count, 1).End(xlUp).Offset(1). _
Row, 1)
End With
Else
MsgBox "Suchbegriff wurde nicht gefunden."
End If
End If
End If
Set Suche = Nothing
End Sub
Gruß Werner
Anzeige
AW: VBA Suchen,kopieren
12.01.2019 17:22:19
Julian
Hallo Werner, das tut mir leid - ist mir gerade in den Sinn gekommen dass diese Variante noch eleganter wäre..
Dein Code funktioniert super - auch in Tabelle 1. Dynamisch ist dies aber nicht machbar, dass ich in egal welcher Zeile A in Tabelle 1 etwas eingebe und er mir rechts daneben in Spalte B und C der gleichen Zeile die zwei Werte B und C der gefundenen Zahl in Tabelle 2 kopiert oder?
Grüße Julian
AW: VBA Suchen,kopieren
13.01.2019 10:19:18
Werner
Hallo Julian,
sorry, aber warum kommt eigentlich immer alles "scheibchenweise". Erst Inputbox, dann Eingabe in eine Zelle, jetzt egal in welche Zelle in einer Spalte.
Sicher ist auch das möglich. Nochmal: Vorher überlegen was du willst und dann die Frage posten.
Und jetzt meine Nachfrage:
Du willst also Spalte A auf Eingaben überwachen und dann auch den eben eingegebenen Wert in Spalte A suchen? Und wir sprechen hierbei von ein und demselben Blatt?
Am besten erstellst du jetzt mal eine Beispielmappe lädst die hier hoch und beschreibst nochmal genau, was, wann, warum passieren soll.
Gruß Werner
Anzeige
AW: VBA Suchen,kopieren
15.01.2019 12:24:30
Julian
Hallo Werner,
Ich kann leider die von mir erstellte Beispieldatei nicht hochladen.
In Tabellenblatt 1 ist in den oberen Zellen ein Tabellenkopf mit Auftragsnummer etc., darunter eine Tabelle in den Spalten A Position, B Bezeichnung und in Spalte C Preis. Das können etwa 10-25 Zeilen sein was nicht vorher absehbar ist. Darunter kommt eine Zeile mit Zwischensumme und weiteren 3-6 Positionen auf die ein Zuschlag kommt und unten eine Endsumme. Auf Tabellenblatt 2 ist der gesamte Materialkatalog (bis zu ca. 300Artikel).
Meine Idee war es dass ich in Tabelle 1 in Spalte A eine Position eigenen kann und das Makro mir automatisch die Werte für B und C einfügt.
Deshalb auch meine Nachfrage wegen der Eingabe, um eventuell Zellen hinzuzufügen oder zu löschen und trotzdem die Such-Funktion zu haben.
Vielen Dank für die Hilfsbereitschaft
Mit freundlichen Grüßen Julian
Anzeige
und warum...
15.01.2019 15:50:36
Werner
Hallo Julian,
...kannst du die Datei hier nicht hochladen? Persönliche Daten mußt du vorher halt anonymisieren.
So wie deine letzte Beschreibung ist hört sich das so an, als ob das ohne Makro mit einer SVERWEIS-Formel lösbar ist.
Aber ohne den Aufbau deiner Blätter zu kennen ist dann hier mit Hilfe relativ bald Schluß.
Gruß Werner
AW: und warum...
15.01.2019 15:53:45
Julian
Hallo, habe ich schon probiert..wegen den Daten ist es kein Problem aber er meckert immer wegen dem Dateiformat obwohl ich eine normale Excel hab.
Gruß Julian
AW: und warum...
15.01.2019 16:01:03
Werner
Hallo Julian,
folgende Voraussetzungen für einen Upload:
-Datei nicht größer als 300kb
-keine Sonderzeichen im Dateinamen, nenne sie am besten in Test um
-Datei nicht zu tief in Verzeichnissen "versteckt", pack sie dir auf den Desktop
-Datenschutzrichtlinien bestätigen nicht vergessen
Gruß Werner
Anzeige
AW: und warum...
15.01.2019 16:04:22
Piet
Hallo Julian
der Server versteht keine Umlaute wie ü,ö und andere Zeichen. Nenne die Datei einfach nur "Test", sie bekommt ja eine Server Nr!
Beim Hochladen must du die Datenschutzerklaerung mit anklicken, sonst klappt es nicht.
mfg Piet
AW: VBA Suchen,kopieren
18.01.2019 11:39:57
Julian
Hallo zusammen, hier die Testdatei: https://www.herber.de/bbs/user/126914.xlsm
Unter Windows hat es nun funktioniert. Danke.
Ich möchte in Spalte A auf Tabellenblatt 1 eine Positionsnummer eingeben und möchte in der gleichen Zeile wo ich sie eingegeben habe in den Spalten B und C die dazugehörige Bezeichnung und den Preis.
Die Idee mit der dynamischen Eingabe hatte ich daher, dass vorher nicht immer abzusehen ist wie viele Positionen man in das Angebot schreibt und danach unten noch auf 4-5 Positionen ein Zuschlag kommt. Mit diesen soll genauso verfahren werden wie mit denen über der Zwischensumme.
Vielen Dank für eure Hilfe.
Gruß Julian
Anzeige
AW: VBA Suchen,kopieren
18.01.2019 11:39:58
Julian
Hallo zusammen, hier die Testdatei: https://www.herber.de/bbs/user/126914.xlsm
Unter Windows hat es nun funktioniert. Danke.
Ich möchte in Spalte A auf Tabellenblatt 1 eine Positionsnummer eingeben und möchte in der gleichen Zeile wo ich sie eingegeben habe in den Spalten B und C die dazugehörige Bezeichnung und den Preis.
Die Idee mit der dynamischen Eingabe hatte ich daher, dass vorher nicht immer abzusehen ist wie viele Positionen man in das Angebot schreibt und danach unten noch auf 4-5 Positionen ein Zuschlag kommt. Mit diesen soll genauso verfahren werden wie mit denen über der Zwischensumme.
Vielen Dank für eure Hilfe.
Gruß Julian
Anzeige
AW: VBA Suchen,kopieren
18.01.2019 14:23:36
Julian
Hallo, das klappt super.
Ich habe allerdings nach einem Makro gefragt weil ich es für die Uni brauche und da SVerweis nicht reicht..
Ist das auch möglich oder nur sehr umständlich zu bewerkstelligen?
Gruß Julian
AW: VBA Suchen,kopieren
18.01.2019 15:02:59
Daniel
Hi - wie soll man das jetzt verstehen? SVerweis reicht nicht für die Uni?
Normalerweise ist eine Formellösung in Excel jederzeit einem Makro vorzuziehen. Also entweder hast du eine Aufgabe von der Uni bekommen, konkret etwas per VBA zu entwickeln und versuchst gerade, andere deine Hausaufgaben machen zu lassen. Oder... nein eine andere sinnvolle Möglichkeit fällt mir leider nicht ein. Erklärung?
Grüße
Daniel
Anzeige
AW: VBA Suchen,kopieren
18.01.2019 15:22:07
Julian
Hallo, nein ich versuche nicht jemanden meine Hausaufgaben machen zu lassen. Ich soll für die Uni ein erstes Vba Projekt machen - habe mir dieses Problem einfallen lassen und versucht es zu lösen. Durch Recherche habe ich eine einigermaßen funktionierende User Form hinbekommen und wollte nun hier Hilfe um eventuell meine Vorstellungen zur Verbesserung meines Codes umsetzten zu können da es mein erstes Vba Projekt ist.
Gruß Julian
AW: VBA Suchen,kopieren
18.01.2019 15:51:56
Werner
Hallo Julian,
verstehen muss ich es nicht, aber seis drum.
Hier deine Musterdatei mit Makro.
Ich bin mal davon ausgegangen, dass die Zeilen nach der Zwischensumme (A23 bis A25) auch dazu gehören sollen.
https://www.herber.de/bbs/user/126918.xlsm
Gruß Werner
AW: VBA Suchen,kopieren
18.01.2019 15:56:40
Daniel
Hallo Julian,
wenn du einen guten und fundierten Einstieg in die VBA Welt suchst, kann ich dir diesen Kurs wärmstens empfehlen (nein, ich habe nichts davon :) ):
https://www.udemy.com/excel-vba-and-macros-course/
Gibt's manchmal für um die 10 EUR und du lernst wirklich alles, was du für den Anfang wissen musst plus noch eine Menge mehr. Schau's dir mal an.
Grüße
AW: VBA Suchen,kopieren
18.01.2019 19:44:09
Julian
Hallo Daniel, danke für den Link werde ich mir mal zu Gemüte führen! :)
Hallo Werner, Danke für die Hilfe - genau so habe ich es mir vorgestellt. Kannst du mir vielleicht erklären was die Zahlen hinter dem Target.Offset bewirken? Finde da nichts dazu :/
Grüße Julian
AW: VBA Suchen,kopieren
18.01.2019 21:23:53
Werner
Hallo Julian,
das ist ein "Versatz" ausgehend von der Target Zelle.
Target.Offset(1) = eine Zelle unterhalb Target
Target.Offset(0, 1) = eine Zelle oberhalb Target
Das geht mit negativen Zahlen auch als Versatz nach oben bzw. nach links.
Target.Offset(-1, 0) = eine Zelle oberhalb Target
Target.Offset(0, -1) = eine Zelle rechts von Target
Gruß Werner
AW: VBA Suchen,kopieren
18.01.2019 21:29:27
Julian
Hallo, Achso das ist verständlich.
Aber warum ist es dann bei der ersten Target.Offset Zeile (, 1) und bei der zweiten (, 5)? Dahinter die. Cells(varZeile, 2) bzw 3 bewirkt ja bestimmt die Ausgabe von Spalte B und C oder?
Danke für deine Hilfe
Gruß Julian
AW: VBA Suchen,kopieren
18.01.2019 21:47:30
Werner
Hallo Julian,
na dann zähl doch mal:
Target ist Spalte A, also 1
der erste Wert aus Blatt 2 soll in Spalte B
also ausgehend von Spalte A = Target.Offset(, 1)
der zweite Wert aus Blatt 2 soll in Spalte F
also ausgehend von Spalte A = Target.Offset(, 5)
Gruß Werner
AW: VBA Suchen,kopieren
19.01.2019 11:15:53
Julian
Hallo, Danke der Rest des Codes erschließt sich mir langsam..
Nur die obere Zeile If Target.Count > 1 Then Exit Sub Was bewirkt die?
Gruß Julian

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige