685 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

ich steh vor einer Mammut Aufgabe und brauche eure Hilfe:

ich habe eine Datei: "Aktuell" mit dem Tabellenblatt "Zusammenfassung".

Nun möchte ich die Zellen "A4:F4" kopieren und in eine andere, geschlossene Datei ab Zeile 5 einfügen. Name der Datei: "Neu" mit dem Tabellenblatt "Übersicht".

Wenn in der Tabelle Übersicht in Zeile "5" schon was befindet, soll Excel den kopierten Zellenbereich eine Zeile darunter einfügen. hat jemand einen Tipp oder Code?

Danke :)

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo,

kopiere das folgende Makro in ein Standard-Modul der Arbeitsmappe "Aktuell":

Sub kopieren()
Dim lngEinfZeile As Long
Dim wkbZiel As Workbook

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'Zielarbeitsmappe öffnen - Pfad anpassen
Set wbkZiel = Workbooks.Open("C:\Test\Neu.xlsx")

'letzte beschriebene Zeile in Zielarbeitsmappe in Spalte A feststellen
'und um 1 erhöhen für Einfügezeile
With wbkZiel.Worksheets("Übersicht")
  lngEinfZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
End With
'erste Einfügezeile = Zeile 5; prüfen und ggf. anpassen
If lngEinfZeile < 5 Then lngEinfZeile = 5

'Daten kopieren und einfügen
ThisWorkbook.Worksheets("Zusammenfassung").Range("A4:F4").Copy Destination:=wbkZiel.Worksheets("Übersicht").Cells(lngEinfZeile, 1)

'Zieldatei speichern und schließen
wbkZiel.Close (True)

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

'Abschlussmeldung
MsgBox "Die Daten wurden kopiert.", 64, "Kopieren beendet"

End Sub

Den Pfad in dem die Arbeitsmappe "Neu" liegt musst du noch auf deine Verhältnisse anpassen.

Gruß

M.O.

0 Punkte
Beantwortet von
Hallo M.O.

vielen Dank für deine schnelle Antwort, funktioniert auch super, jedoch habe ich manche Zellen in der Ausgangstabelle mit Bezug, z. B. A4 ist =C5+C6. Wenn ich die Zeile dann in die andere Datei importieren möchte, kommt "Bezug". Gibt es noch einen Code, mit dem man nur den Wert übertragen kann?

Vielen Dank
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo,

dann probier es mal so:

Sub kopieren()
Dim lngEinfZeile As Long
Dim wkbZiel As Workbook

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'Zielarbeitsmappe öffnen - Pfad anpassen
Set wbkZiel = Workbooks.Open("C:\Test\Neu.xlsx")

'letzte beschriebene Zeile in Zielarbeitsmappe in Spalte A feststellen
'und um 1 erhöhen für Einfügezeile
With wbkZiel.Worksheets("Übersicht")
  lngEinfZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
End With
'erste Einfügezeile = Zeile 5; prüfen und ggf. anpassen
If lngEinfZeile < 5 Then lngEinfZeile = 5

'Daten kopieren und einfügen
ThisWorkbook.Worksheets("Zusammenfassung").Range("A4:F4").Copy

With wbkZiel.Worksheets("Übersicht").Cells(lngEinfZeile, 1)
  .PasteSpecial Paste:=xlPasteValues        'Werte
  .PasteSpecial Paste:=xlPasteFormats       'Formate
End With

Application.CutCopyMode = False

'Zieldatei speichern und schließen
wbkZiel.Close (True)

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

'Abschlussmeldung
MsgBox "Die Daten wurden kopiert.", 64, "Kopieren beendet"

End Sub

Gruß

M.O.

0 Punkte
Beantwortet von
Hallo M.O.

hat super funktioniert, danke für die schnelle Antwort.

Ich denke es wird sicherlich noch einigen helfen.

Vielen Dank nochmals

Viele Grüße!

P.S. bin echt happy :)
...