iceage
Goto Top

Excel - bestimmte Zellen einer ausgewählten Zeile per Makro kopieren

Guten Abend Zusammen,

ich kopiere täglich Daten von der einen Excel-Liste in eine andere Excel-Liste und komme nicht auf einen grünen Zweig... Was habe ich?

Microsoft Excel, 2 separate Excel-Dateien mit dem folgenden Aufbau:

Warenkorb.xlsx
ArtNr     Hinweis     ArtBezeichnung   Hinweis2   Hinweis3   Preis
123456    X           Schleifpapier    Mkci       Kleme      85,52 
...


Bestellung.xlsx
ArtNr     ArtBezeichnung    Anzahl     Preis
123456    Schleifpapier                85,52 
....

Mir würde es wahnsinnig helfen, wenn ich ein Makro hätte welches nach dem Markieren z.B. der Zelle A5 in der Warenkorb.xlsx und Drücken von Strg+B, die Werte der Zellen A5, C5 und F5 aus der Warenkorb.xlsx kopiert und diese Werte in die erste freie Zeile der Bestellung.xlsx z.B. in die Zellen A3, B3 und D3 einfügt.

Leider habe ich keinerlei VBA Erfahrung und meine Versuche zeigten leider keinerlei Früchte. Könnte mir hier jemand unter die Arme greifen??

Vielen Dank und Grüße

Ice

edit: Falls es mit einer Exceldatei einfacher sein sollte, wäre es auch eine Option wenn die Zellen in ein neues Tabellenblatt der Warenkorb.xlsx eingefügt werden.

Content-ID: 2677222802

Url: https://administrator.de/contentid/2677222802

Ausgedruckt am: 21.11.2024 um 18:11 Uhr

colinardo
Lösung colinardo 04.05.2022 aktualisiert um 09:34:39 Uhr
Goto Top
Servus.
Sub CopyValues()
    ' Variables  
    Dim wsSource As Worksheet, wsDest As Worksheet, selRow As Long, intNextFree As Long, wb As Workbook, strPath As String
    ' Path to Bestellung.xlsx  
    strPath = "E:\bestellung.xlsx"  
    ' get selected row  
    selRow = Selection.Row
    ' set source sheet  
    Set wsSource = ActiveSheet
    ' check if second workbook is already open  
    For Each wb In Workbooks
        If wb.FullName = strPath Then
            Set wsDest = wb.Sheets(1)
            Exit For
        End If
    Next
    ' open second workbook if not open  
    If wsDest Is Nothing Then
        Set wsDest = Workbooks.Open(strPath).Sheets(1)
    End If
    ' get next free row in column A  
    intNextFree = wsDest.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row  
    ' copy values from selected row to destination sheet  
    wsDest.Cells(intNextFree, "A").Value = wsSource.Cells(selRow, "A").Value  
    wsDest.Cells(intNextFree, "B").Value = wsSource.Cells(selRow, "C").Value  
    wsDest.Cells(intNextFree, "D").Value = wsSource.Cells(selRow, "F").Value  
End Sub
Demo-Sheets copy_to_other_sheet_2677222802.zip

screenshot


Grüße Uwe
IceAge
IceAge 04.05.2022 um 13:11:42 Uhr
Goto Top
Hallo Uwe,

vielen Dank für deine schnelle Antwort. Das Makro funktioniert 1A.

Vielen Lieben Dank für deine tolle Unterstützung.

Grüße I.