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

Gesamte Zeile in anderes Worksheet einfügen

Gesamte Zeile in anderes Worksheet einfügen
29.03.2018 14:50:59
Maxi
Hi,
ich hab mir einen Code geschrieben, der 2 Excel Mappen nach gleichen Werten durchsucht.
Bei der ersten Excel Arbeitsmappe stehen die Werte in Spalte A und bei der zweiten Mappe in der Spalte B.
Von allen Werten, die in beiden Mappen vorkommen soll die gesamte Zeile kopiert werden und in der aktiven Arbeitsmappe "WorkOn.xlsm" eingefügt werden.
Wenn ich meinen Code ausführe passiert leider nichts, es kopiert mir die Zeile leider nicht und es kommt auch kein Fehler.
Das finden der gleichen Werte funktioniert aber definitiv, habe das mit dem Code: Workbooks("WorkOn.xlsm").Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Offset(1).Value = xlSheet2.Cells(a, 2).Value
in der if abfrage schon getestet.
Könnte bitte jemand mal drüber gucken?
Was mach ich falsch?
Danke euch vielmals.
Habe den "interessanten" Teil Fett markiert:
Set xlBook = xlApp.Workbooks.Open("C:\MeinPfad1\test.xlsx")
Set xlSheet = xlBook.Worksheets(1)
Dim letzteZeile As Long
letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row
'--------------------------------------------------------------------------------
Set xlApp2 = GetObject(, "Excel.Application")
If xlApp2 Is Nothing Then
Set xlApp2 = CreateObject("Excel.Application")
End If
Set xlBook2 = xlApp2.Workbooks.Open("C:MeinPfad2\test2.xlsx")
Set xlSheet2 = xlBook2.Worksheets(1)
Dim letzteZeile2 As Long
letzteZeile2 = Cells(Rows.Count, 1).End(xlUp).Row
'--------------------------------------------------------------------------------
Dim y, a As Integer
Dim letzteZeile2 As Long
letzteZeile2 = Cells(Rows.Count, 2).End(xlUp).Row
For y = 1 To letzteZeile
For a = 1 To letzteZeile2
If xlSheet.Cells(y, 1).Value = xlSheet2.Cells(a, 2).Value Then
xlSheet2.Rows(a).Copy Destination:=Workbooks("WorkOn.xlsm").Worksheets(1).Rows(Rows.Count)
End If
Next
Next

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gesamte Zeile in anderes Worksheet einfügen
29.03.2018 17:06:52
KlausF
Hi,
beim kurzen Hinsehen:
Du kopierst alle Zeilen nach Worksheets(1).Rows(Rows.Count), also in die letzte Zeile
des Worksheets(1). Das ist doch bestimmt nicht so gewollt, oder?
Dann ist das erste letzteZeile2
Dim letzteZeile2 As Long
letzteZeile2 = Cells(Rows.Count, 1).End(xlUp).Row

'--------------------------------------------------------------------------------
überflüssig, weil Du sie zwei Zeilen später noch einmal deklarierst, diesmal mit Rows.Count, 2
Dim y, a As Integer ist in doppelter Hinsicht inkorrekt. Zum einen sollten sie
als Long deklariert werden und dann so: Dim y As Long, a As Long
Bei Deiner Schreibweise ist y Variant und nicht Integer
Die jeweils letzten Zeilen solltest Du auch genauer referenzieren:
letzteZeile = xlSheet.Cells(Rows.Count, 1).End(xlUp).Row usw.
Ob Deine Set-Zuweisungen richtig sind (Set xlBook = und Set xlBook2 =) kann ich
nicht beurteilen, weil ich mit dem Mac unterwegs bin und diese Syntax nur unter Windows funktioniert.
Da sollte Dir noch jemand anderes helfen können.
Gruß
Klaus
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige