AW: Range verschieben
09.11.2005 12:07:21
Peter
Ich habe den heutigen unbeantworteten Eintrag "zerstückelt". Vgl. Ende des Subs (vor der private function) - ich will die Variable "r", die den Wert "E4" hat auf "E5" ändern. Irgend einmal muss noch eine Schleife entstehen, damit ich die ganzen Daten abarbeiten kann.
Gruss, Peter
Sub DatenEintragen()
Dim p as String 'Pfad
Dim f as string 'File
Dim s as string 'Sheet
Dim r as string 'zelle
ThisWorkbook.Activate
Range("E6").Select 'E6 ist immer Startposition der Einträge
p = Range ("B6").Value 'Pfad im aktiven Sheet in Spalte B, ab Zeile 6
f = Range ("C6").Value 'Dateiname im aktiven Sheet in Sp C, ab Zeile 6
s = Range = "Tabelle1" 'Sheet in Quelldateien heisst immer "Tabelle1"
r = Range ("E4").Value 'Zelle im aktiven Sheet in Zeile 4, ab Spalte E
ActiveCell.Value = getvalue(p, f, s, r)
ActiveCell.Offset(0,1).Select 'Feld für nächsten Eintrag wird ausgewählt
r.Offset(0,1) -- FEHLERMELDUNG
End Sub
Private Function getvalue(path, file, sheet, ref)
'holt einen Wert aus geschlossener Datei
Dim arg as String
'sicherstellen, dass das File existiert
If Right(path, 1) <> "\" then path = path & "\"
If Dir(path & file) = "" Then
getvalue = "File not found"
Exit Function
End if
'Wert holen und arg zuweisen
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
getvalue = ExecuteExcel4Macro(arg)
End Function