Microsoft Excel

Herbers Excel/VBA-Archiv

Zelle aus eine Datei in andere Datei kopieren

Betrifft: Zelle aus eine Datei in andere Datei kopieren von: claudius seitz
Geschrieben am: 07.03.2016 09:15:23

Hallo liebe Leute,
ich wuerde gerne aus der einer Excel Datei eine Zelle in eine andere kopieren koennen. Am liebsten per Macro. Kann mir da jemand bitte helfen.

Das hier ist das Makro das ich mir geschrieben habe, jedoch finde ich den Fehler nicht.

Sub Zeile_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, zelle As String

'** Angaben zur auszulesenden Zelle

pfad = "C:\Users\claudius\Desktop\New folder"
datei = "book2.xlsm"
blatt = "Sheet1"
bezug = "A3"

'** Eintragen in Zelle
ActiveCell.Value = GetValue(C:\Users\claudius\Desktop, book1, Sheet1, A1)

End Sub


Laut dem debugger liegt der Fehler in dieser zeile:

ActiveCell.Value = GetValue(C:\Users\claudius\Desktop, book3, Sheet2, A1)

ware super wenn ihr mir helfen koenntet :)

  

Betrifft: AW: Zelle aus eine Datei in andere Datei kopieren von: KlausF
Geschrieben am: 07.03.2016 16:38:09

hallo Claudius,
da fehlt Dir die Funktion GetValue dazu.

Private Function GetValue(path, file, sheet, ref)
'   Retrieves a value from a closed workbook
    Dim arg As String
'   Make sure the file exists
    If Right(path, 1) <> Application.PathSeparator Then path = path & Application.PathSeparator
    If Dir(path & file) = "" Then
        GetValue = "File nicht gefunden"
        Exit Function
    End If
'   Create the argument
    arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
      Range(ref).Range("A1").Address(, , xlR1C1)
'   Execute an XLM macro
    GetValue = ExecuteExcel4Macro(arg)
End Function
Klappt's?

Gruß
Klaus


  

Betrifft: und noch etwas von: KlausF
Geschrieben am: 07.03.2016 16:44:38

die letzte Zeile lautet dann

ActiveCell.Value = GetValue(pfad, datei, blatt, bezug)

Gruß
Klaus


  

Betrifft: AW: Zelle aus eine Datei in andere Datei kopieren von: Daniel
Geschrieben am: 07.03.2016 17:13:47

Hi

auch wenn du die Funktion "GetValue" schon hättest, ist da noch folgender Fehler drin:

entweder du verwendest die Variablen, die du definiert hast, das wären:
- pfad
- Datei
- blatt
- bezug

ActiveCell.Value = GetValue(pfad, datei, blatt, bezug)
oder wenn du die Werte direkt angeben willst, musst du diese in Anführungszeichen setzen:
ActiveCell.Value = GetValue("C:\Users\claudius\Desktop", "book1.xlsm", "Sheet1", "A1")
prinzipell solltest du aber ohne die Funktion "GetValue" auskommen, in dem du einfach die Formel mit dem entsprechenden externen Zellbezug in die Zelle schreibst und hinterher die Formel durch ihren Wert ersetzt:

entweder direkt:
ActiveCell.Formula = "='C:\Users\claudius\Desktop\[book1.xlsm]Sheet1'!A1"
oder mit den Variablen:
ActiveCell.Formula = "='" & pfad & "\[" & datei & "]" & blatt & "'!" & bezug
um hinterher die Formel durch ihren Wert zu ersetzen nimmst du einfach:
ActiveCell.Formula = ActiveCell.Value
gruß Daniel


  

Betrifft: AW: Zelle aus eine Datei in andere Datei kopieren von: claudius seitz
Geschrieben am: 08.03.2016 01:51:02

Lieber Daniel und lieber Klaus,

vielen dank fuer euere Hilfe, das klappt jetzt alles super und ich habs jetzt auch verstanden :)

Jetzt hab ich aber noch eine letzte Frage an euch, wie sage ich dem Macro, dass es den Wert, den es aus der Zelle im geschlossenen File geholt hat nicht in die angeklichte Zelle kopiert, sondern z.B. in A1.

Waere super wenn ihr mir dabei noch helfen koenntet.

Vielen Dank schon mal fuer euere Hilfe.

Gruss,

Claudius


  

Betrifft: Range("A1").Value von: KlausF
Geschrieben am: 08.03.2016 13:43:29

Hallo Claudius,

schreibe statt ActiveCell.Value = GetValue(pfad, datei, blatt, bezug)
Range("A1").Value = GetValue(pfad, datei, blatt, bezug)

Gruß
Klaus


  

Betrifft: AW: Zelle aus eine Datei in andere Datei kopieren von: claudius seitz
Geschrieben am: 08.03.2016 01:51:34

Lieber Daniel und lieber Klaus,

vielen dank fuer euere Hilfe, das klappt jetzt alles super und ich habs jetzt auch verstanden :)

Jetzt hab ich aber noch eine letzte Frage an euch, wie sage ich dem Macro, dass es den Wert, den es aus der Zelle im geschlossenen File geholt hat nicht in die angeklichte Zelle kopiert, sondern z.B. in A1.

Waere super wenn ihr mir dabei noch helfen koenntet.

Vielen Dank schon mal fuer euere Hilfe.

Gruss,

Claudius


 

Beiträge aus den Excel-Beispielen zum Thema "Zelle aus eine Datei in andere Datei kopieren"