PDA

Vollständige Version anzeigen : Werte aus Datei 1 in Datei 2 übertragen


Exx
14.12.2017, 16:38
Hallo Zusammen,

Ich bin gerade dabei ein Marko zu schreiben, welches aus Datei 1 erst die Werte löscht und danach aus Datei 2 neue Daten überträgt.

Der Bereich der gelöscht wird und auch vom 2. Dokument übertragen werden soll ist (A2:E1000).

Zudem möchte ich die 2. Datei aus der ich die Werte auslesen möchte mit Hilfe vom Windows Explorer auswählen.

Meine MessageBox gibt mir den korrekten Pfad an der geöffnet werden soll, allerdings bekomme ich dann eine Fehlermeldung beim ausführen des Makros. ("Run-time error '1004' Sorry we couldn't find "Datei-Pfad". Is it possible it was moved, renamed or deleted?")

Sub Meldebestand()
Dim varDatei As Variant

'Delete all Data in Worksheet'
Worksheets("Inventory").Range("A2:E1000").Clear

varDatei = Application.GetOpenFilename()
If varDatei = False Then
MsgBox "Der Benutzer hat abgebrochen.", vbInformation
Else
MsgBox "Folgende Datei wurde ausgewählt:" & vbCrLf & varDatei
End If

Dim Start As Workbook
Dim Ziel As Workbook

Set Start = Workbooks.Open(vbCrLf & varDatei, False, True)
Set Ziel = ActiveWorkbook
Start.Sheets("Inventory").Range("A2:E1000").Value.Copy Destination:=Ziel.Sheets("Inventory").Range("A2:E1000").Value



End Sub

Würde mich sehr freuen wenn einer weiterhelfen kann.

Vielen Dank im Voraus,
Christian

rastrans
14.12.2017, 17:47
Also ohne deinen Code im Excel zu prüfen, ist mein Tipp, das der Fehler in folgender Zeile auftritt:Set Start = Workbooks.Open(vbCrLf & varDatei, False, True)Liegt nämlich daran, das es auf deinem Rechner sicherlich keine Datei gibt, die mit vbCrLf beginnt! Lösch einfach den roten Bereich!

Exx
14.12.2017, 19:22
Also ohne deinen Code im Excel zu prüfen, ist mein Tipp, das der Fehler in folgender Zeile auftritt:Set Start = Workbooks.Open(vbCrLf & varDatei, False, True)Liegt nämlich daran, das es auf deinem Rechner sicherlich keine Datei gibt, die mit vbCrLf beginnt! Lösch einfach den roten Bereich!

Dachte das gehört zum Dateipfad den ich als Namen brauche. Habe es mal ohne den roten Bereich getestet. Jetzt öffnet sich meine 2. Datei aber überträgt die Werte nicht. Stattdessen erhalte ich den Error ("Run=time error '424': Object required")

rastrans
15.12.2017, 09:52
Range.Value-Eigenschaft (https://msdn.microsoft.com/de-de/vba/excel-vba/articles/range-value-property-excel)gibt dir den Wert einer Zelle zurück, oder setzt diesen. Diese Eigenschaft hat keine Copy-Methode!
Du kannst den gesammten Range kopieren, indem du die Range.Copy-Methode (https://msdn.microsoft.com/de-de/vba/excel-vba/articles/range-copy-method-excel) verwendest.Start.Sheets("Inventory").Range("A2:E1000").Value.Copy _
Destination:=Ziel.Sheets("Inventory").Range("A2:E1000").Valuewie schon vorher: rot weglassen!;)

Exx
15.12.2017, 14:46
Vielen Dank für deine Hilfe und Bemühungen:)

Aber leider kopiert es mir die Zellen(Werte) immer noch nicht von Datei 2 nach Datei 1 :(

Hast du noch eine weitere Lösungsmöglichkeit für mich?