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

Wenn Wert gefunden, da einfügen

Wenn Wert gefunden, da einfügen
19.01.2020 21:03:35
Seli
Hallo zusammen,
mein Makro macht leider nicht das, was es soll, und ich weiß nicht wieso.
Mein Ziel ist es, dass, wenn in Liste 1 ein Wert gefunden wurde, er in Liste 2 kopiert wird, und zwar in die Zeile, wo der Schlüssel identisch ist.
Also so etwas wie: Liste 1, Range A3 hat den Wert 2. Finde in Liste 2, Spalte A, die Zeile, die den Wert 2 hat, und übernehme die ganze zugehörige Zeile aus Liste 1 in diese Zeile.
Mein Ansatz:
Ich habe den Suchbegriff so festgelegt, dass i die Spalte A in Liste 1 durchläuft.
For i = 3 To letztezeile1
strText = Range("A" & i).Value
'Gibt die Zeile aus L1 zurück, in der der gesuchte Begriff steht
Sheets("L1").Activate
With Sheets("L1")
Set m = .Range("A3:A" & letztezeile1).Find(strText, LookIn:=xlValues, lookat:=xlPart, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
If Not m Is Nothing Then
Zeilein1 = m.Row 'Nummer der Zeile, in der Schlüssel gefunden
End If
End With
'Gibt die Zeile aus L2 zurück, in der der gesuchte Begriff steht
Workbooks("L2").Worksheets("Tabelle1").Activate
With Sheets("L2")
Set k = .Range("A3:A" & letztezeileL2).Find(strText, LookIn:=xlValues, lookat:=xlPart, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
If Not k Is Nothing Then
ZeileinL2= k.Row 'Nummer der Zeile, in der Schlüssel in Abteilung gefunden
End If
End With
Jetzt weiß ich nicht, wie ich weitermachen kann. Ich suche etwas wie:
Kopiere die Zeile m in die Zeile k, wenn Liste1.Cells(m,1) = Liste2.Cells(k,1)
Kann mir jemand helfen? Vielen Dank!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Wert gefunden, da einfügen
20.01.2020 10:29:43
SH95
Hallo Seli,
ich hab meine Zweifel ob ich verstanden habe, um welche Funktion es dir geht, bzw wie du z.B. den Wert für den Vergleich findest.
Hier mal mein Codevorschlag,
Private Sub kopieren()
Dim lzeile1 As Integer
Dim lzeile2 As Integer
Dim wert As String
lzeile1 = 3
wert = Sheets("Liste1").Cells(lzeile1, 1).Value
With Sheets("liste2")
For lzeile2 = 2 To 2000
If wert = .Cells(lzeile2, 1) Then
Sheets("liste1").Rows(lzeile1).Copy
Sheets("Liste2").Rows(lzeile2).Insert
Exit Sub
End If
Next lzeile2
End With
End Sub
Hier wird (wie du beschrieben hast) nach dem Text, welcher in der Zelle A3 auf dem Blatt Liste1 steht in Liste2 gesucht und dann wird die Zeile kopiert und an der Stelle in Liste 2 eingefügt.
Ich weiß allerdings nicht wie du dieses Makro starten willst und ob der zu suchende Wert immer in der Zelle A3 ist?!
Bzw. wie du den zu suchenden Wert/Text auserwählst.
Hättest du da evtl mehr infos und auch evtl auch eine Beispieldatei?
Gruß
Stefan
Anzeige
AW: Wenn Wert gefunden, da einfügen
20.01.2020 23:00:44
Seli
Hallo Stefan,
vielen Dank, das sieht schon mal gut aus!
Also der Suchbegriff ist in einer Schleife definiert, und das i durchläuft Zeile für Zeile die Spalte mit den Schlüsseln. Er steht deshalb in Spalte A, Zeile i und variiert.
Ich versuche, morgen eine Beispieldatei hochzuladen.
Vielen Dank und Grüße
Seli
AW: Wenn Wert gefunden, da einfügen
21.01.2020 12:17:34
SH95
Hallo Seli,
als Vorschlag, evtl schaffst es ja selber dann anzupassen, sonst lädst die Datei dann hoch.
Und wenn du mit i schon alles durchsuchst, wo die Zeile ist in welcher dein Wert steht, dann würde ich den Code so anpassen:
Private Sub kopieren()
Dim lzeile1 As Integer
Dim lzeile2 As Integer
Dim wert As String
wert = sheets("Liste1").cells(i,1)
With Sheets("liste2")
For lzeile2 = 2 To 2000
If wert = .Cells(lzeile2, 1) Then
Sheets("liste1").Rows(i).Copy
Sheets("Liste2").Rows(lzeile2).Insert
Exit Sub
End If
Next lzeile2
End With
End Sub
Wie gesagt, versuch dein Glück, falls du es schaffst, optimal und sonst stellst einfach deine Bsp.Datei mit deinem Code hier rein und dann schaffen wir das auch.
Gruß
Stefan
Anzeige
AW: Wenn Wert gefunden, da einfügen
21.01.2020 17:51:54
Seli
Hey Stefan,
ich konnte es leider nicht umsetzen, es ist mein erstes VBA-Projekt und mir fehlt es an jeder Ecke...
Ich habe das Problem halbwegs lösen können - manchmal läuft es, manchmal leider auch nicht.
Allerdings habe ich jetzt ein anderes Problem: Dass die Zuordnung noch klappt, wenn Zeilen entfernt werden (ist in dem Makro genauer beschrieben).
Ich wäre dir sehr dankbar, wenn du dir das anschauen könntest, und vielleicht löst deine Version die Probleme ja.
Liste 1: https://www.herber.de/bbs/user/134599.xlsm
Liste 2: https://www.herber.de/bbs/user/134600.xlsm
Vielen Dank für deine Hilfe!
Anzeige
AW: Wenn Wert gefunden, da einfügen
22.01.2020 07:11:58
SH95
Hallo Seli,
dafür ist so ein Forum ja da,
als kleine Anmerkung zum Beginn, ich war davon ausgegangen und mein Code darauf ausgelegt, dass beide Listen in einer Arbeitsmappe sind. Hat das einen näheren Sinn, diese in zwei Arbeitsmappen aufzuteilen?
Dann wäre es evtl. von Vorteil gewesen, wenn du die geplante Benamung der Mappen mit angegeben hättest (Master/Einkauf) da musste ich schon erstmal im Code suchen, bis ich den richtigen Namen hatte.
Nur als Anmerkung für zukünftige Fragen.
So dann zu deinem Anliegen,
Ich hab das jetzt mal durchlaufen, du hattest nur zwei kleine Denkfehler drin, zur Erklärung:
        Workbooks("Master.xlsm").Worksheets("Master").Activate
Cells(m, 2).Select
Selection.Copy
Workbooks(Dateiname).Worksheets(Worksheetname).Activate
Cells(k, 2).Select
ActiveSheet.Paste

Das war dein Code,
m und k sind aber deine Variablen für die Id-Nummern (also wenn die ID-Nummer 5 in Zeile 8 steht, wird Zeile 5 kopiert.
        Workbooks("Master.xlsm").Worksheets("Master").Activate
Cells(ZeileinMaster, 2).Select
Selection.Copy
Workbooks(Dateiname).Worksheets(Worksheetname).Activate
Cells(ZeileinWorksheetname, 2).Select
ActiveSheet.Paste
So wird deine Variable für die Zeilen verwendet.
Hier die "Master"-Datei, in der anderen hab ich nichts verändert.
https://www.herber.de/bbs/user/134607.xlsm
Wurde dein Problem damit gelöst?
Gruß
Stefan
Anzeige
AW: Wenn Wert gefunden, da einfügen
22.01.2020 07:56:01
Seli
Hey Stefan,
Vielen Dank für deine Mühe und Tipps!
Leider tut es bei mir nicht das, was es soll - es übernimmt gar nichts.
Trotzdem vielen Dank, ich werde versuchen, es anders umzusetzen.
Viele Grüße
Seli
AW: Wenn Wert gefunden, da einfügen
22.01.2020 08:17:57
SH95
Hallo Seli,
was heißt "gar nichts" sucht er nicht, oder kopiert er nicht?
hast du schonmal einen Haltepunkt gesetzt und mit F8 jeden Schritt verfolgt?
So könntest du die Variablen nach und nach durchschauen ob diese dem Wert entsprechen, den sie haben sollten (Suchwert/Zeilennummer/Mappenname/etc.).
Falls du es wirklich komplett neu/anderst machen willst und Hilfe brauchst, kannst dich gern wieder melden.
Gruß
Stefan
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige