underdog81
Goto Top

Kopieren und einfügen zwischen 2 Dateien und unterschiedlichen Mappen

Ich teste mich in Vb und komme grade nicht weiter.
Hoffe es es hilft auvh anderen.

Hier mein Vorhaben...

Ich habe 2 Dateien und er soll aus der ersten den Inhalt der Mappe1
in die Datei in Mappe2 kopieren. Hierbei soll er aber die Formeln nicht zestören, die in Datei1 hinterlegt sind.

Hier was irgendwie nicht funzt...
Sub Quelldatei_Sync()

Windows("N:\Ordner\Datei1.xls").Activate  
Sheets("Quelldatei!!").Select  
Cells.Select
Range("A1").Copy  
Windows("N:\Ordner\Datei2.xls").Activate  
Sheets("Quelldatei!!").Select  
Cell.Select
Range("A1").Select  
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Content-ID: 172081

Url: https://administrator.de/forum/kopieren-und-einfuegen-zwischen-2-dateien-und-unterschiedlichen-mappen-172081.html

Ausgedruckt am: 24.12.2024 um 13:12 Uhr

Pago159
Pago159 25.08.2011 um 15:11:05 Uhr
Goto Top
Hallo Underdog81,

ich habe zwar schon eine Weile nicht mehr Programmiert,
und kann dir die Syntax nicht nennen,
aber ich kann dir evt. schon sagen, woran das ganze liegt ;)

Range("A1").Copy


Hast du mal versucht in eine Excel Tabelle zu gehen und dann einfach nur die einzelnen Zeilen zu Kopieren?
Ich glaube mich entsinnen zu können, dass dann keine Formeln übernommen werden,
sondern nur die reinen Daten.

Lg Grapper
bastla
bastla 25.08.2011 um 15:24:36 Uhr
Goto Top
Hallo Underdog81!

VBA ist super - wenn Du "Werte einfügen" (="PasteValues") verlangst, kriegst Du das auch ... face-wink

Versuch es so:
Windows("N:\Ordner\Datei1.xls").Sheets("Quelldatei!!").Cells.Copy  
Windows("N:\Ordner\Datei2.xls").Activate  
Range("A1").Select  
ActiveSheet.Paste
Application.CutCopyMode = False
Grüße
bastla

P.S.: @grapper: Du solltest Deine Erinnerungen etwas auffrischen ... face-wink

[Edit] Noch etwas kompakter formuliert [/Edit]
bastla
bastla 25.08.2011 um 15:46:49 Uhr
Goto Top
... aber eigentlich sollte ein Einzeiler genügen face-wink:
Windows("N:\Ordner\Datei1.xls").Sheets("Quelldatei!!").Cells.Copy Windows("N:\Ordner\Datei2.xls").ActiveSheet.Range("A1")
Grüße
bastla
Underdog81
Underdog81 25.08.2011 um 16:32:23 Uhr
Goto Top
Danke für eure Vorschläge aber irgenwie will es nicht.
Aber ich probiere es weiter.

Ich nutze übrigends Excel2003
bastla
bastla 25.08.2011 um 19:24:04 Uhr
Goto Top
Hallo Underdog81!

Eigentlich reicht ja eine exakte Fehlerbeschreibung der Art
irgenwie will es nicht.
um den Schluss "Vermutlich soll es nicht." daraus zu ziehen - aber gelegentlich überkommt mich dann doch die Neugier ...

Grüße
bastla
Biber
Biber 25.08.2011 um 19:41:21 Uhr
Goto Top
Zitat von @bastla:
... "Vermutlich soll es nicht." ...
...oder " es würde gerne, aber es traut sich nicht" ??
Vielleicht hat er kein Laufwerk N: auf seinem Rechner gemäppt?
Oder die Zielzelle "A1" ist gelöscht?

@Underdog81
Falls du nicht bald eine exaktere Fehlermeldung postest, werden bestimmt noch mehr hilfreiche Ratereien kommen....

Grüße
Biber
Underdog81
Underdog81 26.08.2011 um 09:52:58 Uhr
Goto Top
Hallo ihr beiden face-smile
Ich war die Tage etwas gefrustet, dass ich es nicht einmal hinbekomme eine "einfache" copy paste zu erstellen in VB.

So habe ich es jetzt stehen und ja die Mappe hat den Namen "Qeulldatei !! ". Also mit leerzeichen hinter den ! und davor auch.

Windows("N:\Ordner\Datei.xls").Sheets("Quelldatei !! ").Cells.Copy Windows("N:\Ordner\Datei2").ActiveSheet.Range("A1")


der Fehler lautet so...

Laufzeitfehler '9':
Index ausserhalb des gültigen Bereich.

Sagt mir also, dass die Pfade nicht passen, doch ich kopiere diese sogar face-sad
bastla
bastla 26.08.2011 um 11:00:46 Uhr
Goto Top
Hallo Underdog81!
Sagt mir also, dass die Pfade nicht passen
Die Fehlermeldung lässt darauf schließen ...

Beschreibe doch bitte mal den gesamten Ablauf, wobei, wenn "Datei2" neu erstellt werden soll, ja auch gleich das gesamte Blatt kopiert werden könnte:
Sheets("Quelldatei !! ").Copy  
ActiveWorkbook.SaveAs Filename:="N:\Ordner\Datei2.xlsx"  
Grüße
bastla
Underdog81
Underdog81 26.08.2011 um 11:24:08 Uhr
Goto Top
er soll aus Datei1 / Mappe1 (Quelldatei !! ) die aktuellen Werte kopieren und dann in Datei2 /Mappe1 (auch Quelldatei !! ) hineinkopieren.
Der Inhalt der Datei / mappe1 ändert sich öffter mal und deshalb soll er eben in Datei2/Mappe1 auch ernneuert werden.
Es existieren also schon beide Dateien und er soll die 2te eben nur aktualisieren.
Sorry wenn ich es nicht genau genug beschrieben hatte. Und ich hoffe es ist nun verständlich face-smile

Underdog81
bastla
bastla 26.08.2011 um 11:41:02 Uhr
Goto Top
Hallo Underdog81!

Also bei mir funktioniert folgende Zeile (auch mit dem, sagen wir mal "ungewöhnlichen", Tabellennamen):
Workbooks("Datei1.xlsx").Sheets("Quelldatei !! ").Cells.Copy Workbooks("Datei2.xlsx").Sheets("Quelldatei !! ").Range("A1")
- natürlich unter der Voraussetzung, dass beide Dateien geöffnet sind.

Grüße
bastla