Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<
Microsoft Office 2003-2019 => Excel => Thema gestartet von: lklk am Juni 23, 2016, 07:39:02 Vormittag
-
Hallo ihr schlauen Klöpfe :D,
ich versuch seit einigen Wochen mich mit dem Thema VBA / Makros auseinander zu setzen.
Mein Vorhaben besteht darin, mehrere Excel-Arbeitsmappen in einem Ordner im Excel Hauptdokumen zu öffnen, kopieren&einfügen und wieder zu schließen.
Ich habe erst einmal mit diesem makro angefangen:
Sub Bereich_einfügen ()
Dim pfad As String, datei As String, blatt As String, bereich As Range, zelle As Object
pfad = "D:\"
datei = "Beispiel.xlsx"
blatt = "Tabelle1"
Set bereich = Range ("A1:H300")
For Each zelle In bereich
zelle = zelle.Address(False,False)
ActiveSheet.Cells(zelle.Row, zelle.Column).Value = GetValue(pfad, datei, blatt, zelle)
Next zelle
End Sub
Leider wird mir der Fehler "Funktion nicht definiert" angezeigt.... Zudem brauche ich nun Hilfe, dass mir alle Datein, welche sich im Ordner befinden nacheinander ausgelesen werden.
Hoffe mir kann jemand helfen.
Liebe Grüße
Lena
-
Moin Lena,
ich nehme an, dass diese Zeile moniert wird:
ActiveSheet.Cells(zelle.Row, zelle.Column).Value = GetValue(pfad, datei, blatt, zelle)
denn Excel an sich kennt die Funktion GetValue() nicht. Such mal bei Mr. Goo, da wirst du fündig (wurde ich eben auch).
-
Morgen :)
Danke für die Antwort gmg-cc.
Ich habe schon Tage damit verbracht das Problem mit Mr. Goo zu lösen oder VBA Bücher, allerdings ohne Erfolg.
Habe nur sowas gefunden:
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) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
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
Sub btnUpdate_Click()
Dim p, f, s, a As String
Dim gPfad As String
Dim gDatei As String
Dim gZelle As String
Dim eResult As String
gZelle = Range("X100").Value
For i = 1 To 7
gPfad = Cells((99 + i), 30).Value
gDatei = Cells((99 + i), 27).Value
p = gPfad
f = gDatei
s = "Summe GJ"
a = gZelle
eResult = GetValue(p, f, s, a)
Cells((99 + i), 33).Value = eResult
Next i
End Sub
Kannst du mir sagen, was diese Funktionen genau ausführen?