PDA

Vollständige Version anzeigen : Excelzugriff auf andere Exceldatei


Slaker
17.07.2006, 16:13
HI!

Ist es möglich mit einem VBA Code, der sich in einer Exceldatei befindet, auf eine andere Exceldatei zu zugreifen? Leider bin ich in diesem Fall sehr überfragt und wäre über eine Antwort sehr dankbar.

Gruß Patrick

Beverly
17.07.2006, 17:22
Hi Patrick,

natürlich geht das - wie (fast) alles in Excel. Nur kann man aus deinen wenigen Angaben nicht viel zum wie und was sagen.

jinx
17.07.2006, 17:28
<font size="2" face="Century Gothic">Moin, Patrick,

ja, entweder ein Objekt auf die Mappe legen oder die Aktion durch Ansprache Name/Tabelle/Zelle/Vorgehen ausführen:

Option Explicit

Sub Patrick()
Dim wkbOrig As Workbook
Dim wkbTarg As Workbook
Set wkbOrig = ThisWorkbook
Set wkbTarg = Workbooks.Open("E:\Temp\Hugo.xls")
wkbTarg.Sheets("Tabelle1").Range("C10").Value = wkbOrig.Sheets("Tabelle1").Range("A1").Value
wkbTarg.Save
wkbTarg.Close
Set wkbTarg = Nothing
Set wkbOrig = Nothing
End Sub</font>

Slaker
18.07.2006, 09:58
Guten Morgen! ;)

Danke Jinx, genau nach sowas habe ich gesucht - jedenfalls fast. :D

Eigentlich möchte ich folgendes:

Ich möchte nach und nach, aus einer anderen Exceldatei (nicht geöffnet) Zahlen auslesen und in der aktuellen (geöffneten) Exceldatei speichern. Die Exceldatei aus der die Daten gelesen werden sollen, sollte sich nach Möglichkeit nicht öffnen. Ist dies auch irgendwie möglich?

Gruß Patrick

jinx
18.07.2006, 19:09
<font size="2" face="Century Gothic">Moin, Patrick,

entweder über die Formelverbindung, über ExecuteExcel4Macros (sollte im Archiv des Forums vorhanden sein ;)) oder durch die Verwendung von ADO, wie bei Ron de Bruin unter Copy a range from closed workbooks (ADO) (http://www.rondebruin.nl/ado.htm) bechrieben, oder ein Vorgehen nach Copy a range from closed workbook (Local, Network and on the internet) (http://www.rondebruin.nl/copy7.htm).</font>

Slaker
24.07.2006, 13:28
Vielen Dank Jinx!

Private Sub GetData_Example4()
Dim SaveDriveDir As String, MyPath As String

SaveDriveDir = CurDir
ChDrive SaveDriveDir
ChDir SaveDriveDir


FName = SaveDriveDir & "\test.xls"

FName.Sheets("Rechnung").Range("A1").Value = "5"



ChDrive SaveDriveDir
ChDir SaveDriveDir
End Sub

Mein Problem ist, dass nun in der Exceldatei auf welche zugegriffen wird, jedes einzelne Feld angesprochen werden soll. Z.B. in das Feld A1 der Wert 5 eingetragen werden soll...

Leider funktioniert der Befehl:
FName.Sheets("Rechnung").Range("A1").Value = "5"
nicht.

Ich hoffe jemand kann mir eine Lösung vorschlagen! :rolleyes:

Besten Dank im Voraus! :D

jinx
24.07.2006, 17:37
<font size="2" face="Century Gothic">Moin, Slaker,

kann auch nicht, weil die Bezeichnung Workbooks dazu fehlt... Nur ist es mir nicht möglich, in geschlossene Mappen zu schreiben (außer ich verwende ADO), aber wenn Du einen Weg gefunden hast, gibst Du ihn hier bitte preis? Danke.

Nur so nebenbei: Was soll das mit CurDir und Wechseln in dieses Verzeichnis? CurDir ist das momentan aktive Verzeichnis - da braucht man IMHO nicht zu wechseln...</font>

Slaker
25.07.2006, 18:28
Eine Frage bliebe mir da nun noch... ;)

Die Orig.Datei (Test.xls) und die Targ.DAtei (Ziel.xls) liegen zusammen immer im selben Ordner, aber der Ordner wird öfters mal verschoben, wie ändere ich dann nun den Pfad so ab, dass die Datei immer geöffnet werden kann, auch wenn der Ordner mal verschoben wird!? :D

Bald werd ich mich mal intersiver mit VBA auseinandersetzen... :D

Beispiel:

Set wkbTarg = Workbooks.Open("E:\Temp\Ziel.xls")


Besten Dank

Patrick :D