156 Aufrufe
Gefragt in Tabellenkalkulation von
Bearbeitet
Guten Tag zusammen.

Ich möchte die Werte der letzten beschriebenen Zeile einer Tabelle in den Spalten A bis F der gefundenen Zeile markieren und kopieren. Diese sollen dann in ein anderes Tbl. übertragen werden.

Meine Tabelle beginnt bei A83 und wird dann fortlaufend mit Einträgen befüllt.

Beide Tabellen sind offen und ich starte das VBA mit der Tabelle in der die Daten hineinkopiert werden.

Ich hätte jetzt die Frage wie lese ich die letzte beschriebenen Zeile der Quelltabelle den aus und wie markiere ich dann A bis F um dies zu kopieren.

Wenn das Makro dann aktiviert wird soll immer aus der letzten Zeile der Quelldatei die Daten der Spalte A bis F von letzten getätigten / gefundenen Eintrag markiert und kopiert werden.

 (und diese werden dann in der anderen Tabelle als neuen Wert eingetragen / übertragen. -Hierfür habe ich jedoch den Code)

Ich wäre dankbar wenn mir jemand helfen könnte.

Ich suche schon seit Tagen nach einer Lösung .

Vielen lieben Dank.

Gruß Frank

4 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Frank,

willst du Daten aus eine anderen Mappe (Datei) in die Mappe mit dem Code kopieren oder nur von einem Tabellenblatt in ein anderes in derselben Mappe? Hier ein Code für den letzteren Fall:

    Dim lngLetzte As Long
    With Worksheets("Quelle")
        lngLetzte = .Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        .Range(.Cells(lngletztem1), .Cells(lngLetzte, 6)).Copy
    End With

Bis später, Karin

0 Punkte
Beantwortet von
Hallo Karin,

Vielen Dank für deine schnelle Antwort.

Ich möchte die Daten von zwei unterschiedlichen Mappen (Datei) kopieren.

Die Quelldatei ist ("Auftragsabrechnung_aktuell.xlsx")

Worksheets (3)

Die Zieldatei ist ("2023_Bewertung_SV_V1.2_eigene.xlsm")  und

 Worksheets("Bewertung_SV_2023") . Hierher sollen die Daten dann in die Tabelle unter dem letztem Eintrag.

Der Eintrag soll hier in der Spalte B erfolgen. Zu prüfen wäre somit hier wo sich die letzte beschriebene Zelle in B befindet und dort dann eine Zeile drunter soll der Eintrag hinein kopiert werden.

Ich hoffe ich konnte es gut beschreiben.

Danke Danke schon mal.

LG Frank
0 Punkte
Beantwortet von
Also ich zeig mal was ich gebastelt habe :-)

Bitte nicht erschlagen, ich bin totaler Anfänger und daher habe ich versucht es selbst hinzubekommen. Ich habe mir den Makroaufzeichner zur Hilfe genommen, der mir einen Code ausgeworfen hat, den ich dann teilweise genommen habe. Funktioniert nur leider nicht gut :-)

Hier der Code:

Sub test_Kopie_aus_Roberta()
'
' test_Kopie_aus_Roberta Makro
'
' Tastenkombination: Strg+r
'
    Windows("Auftragsabrechnung_aktuell.xlsx").Activate

    'Hier ist nun der Code von Karin der wohl angepasst werden muss- Danke.

     Dim lngLetzte As Long
            lngLetzte = .Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        .Range(.Cells(lngletztem1), .Cells(lngLetzte, 6)).Copy
 
    Windows("2023_Bewertung_SV_V1.2_eigene.xlsm").Activate
    Worksheets("Bewertung_SV_2023").Range("B10").End(xlDown).Offset(1, 0).Select
    
    ActiveSheet.Paste
    Worksheets("Bewertung_SV_2023").Range("B10").End(xlDown).Offset(0, 7).Select
    
    Application.CutCopyMode = False  
  
End Sub
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Frank,

ich kann den Code ja nicht testen, da mir deine Mappen nicht zur Verfügung stehen, aber versuche es mal so:

    Dim lngLetzte As Long
    Dim lngZiel As Long
    Dim wksZiel As Worksheet
    Set wksZiel = ThisWorkbook.Worksheets("Bewertung_SV_2023")
    lngZiel = wksZiel.Columns(2).Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
    With Workbooks("Auftragsabrechnung_aktuell.xlsx").Worksheets(3)
        lngLetzte = .Columns(1).Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        .Range(.Cells(lngLetzte, 1), .Cells(lngLetzte, 6)).Copy wksZiel.Cells(lngZiel, 2)
    End With

Bis später, Karin

...