PDA

Vollständige Version anzeigen : Excel4Makro


poltergeist
12.11.2005, 20:31
hi ihr :yelrotfl:

komm net weiter :rolleyes:

so funktioniert diese zeile :D

Cells(zaehler1, 1) = ExecuteExcel4Macro("'C:\test3\" & "[Mappe" & zaehler1 & ".xls" & "]Tabelle1" & "'!" & Range("C1").Address(, , xlR1C1))

doch wenn ich statt "Mappe" & zaehler1" einen string(beliebiger name) einsetze,wäre ja dann so

Cells(zaehler1, 1) = ExecuteExcel4Macro("'C:\test3\" & "[" & dateiName & ".xls" & "]Tabelle1" & "'!" & Range("C1").Address(, , xlR1C1))

heisst es kein bezug mehr :entsetzt:

weiss einer vielleicht weshalb :idee:

gruss poltergeist :rolleyes:

Hajo_Zi
12.11.2005, 20:41
Hallo Hans Bärbel,

schreibe doch mal was dies Makro machen soll?
Ich vermute mal einen Wert aus einer geschlossenen Datei lesen!

Option Explicit
' von Alf Herber Forum
' http://www.herber.de/forum/archiv/52to56/t52834.htm#52840
Sub TestGetValue()
Dim p As String
Dim f As String
Dim s As String
Dim r As String
p = "E:\Eigene Dateien\Hajo\"
f = "Adresse.xls"
s = "Adresse"
r = "B4"
' bennanter Bereich ergänzung von Nikhil Milo
' r = "Heinze"
MsgBox GetValue(p, f, s, r)
Worksheets("Tabelle1").Range("A1") = GetValue(p, f, s, r)
End Sub
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)
' bennanter Bereich ergänzung von Nikhil Milo
' arg = "'" & path & "[" & file & "]" & sheet & "'!" & ref
' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function

<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>

poltergeist
12.11.2005, 20:53
hi hajo :hands:

hier das kommplette makro was eine zelle aus einer geschlossenen datei lesen sollte,aber mit dem fehler #Bezug in der zelle :bawling:

gruss poltergeist :yelrotfl:

Sub makro01()
Dim zaehler As Long
With Application.FileSearch
.NewSearch
.LookIn = "C:\test3"
.SearchSubFolders = False
.Filename = "*.*"
If .Execute() > 0 Then
For zaehler1 = 1 To .FoundFiles.Count
Cells(zaehler1, 1) = ExecuteExcel4Macro("'C:\test3\" & "[" & .FoundFiles(zaehler1) & "]Tabelle1" & "'!" & Range("C1").Address(, , xlR1C1))
Next zaehler1
End If
End With
End Sub

p.s.
danke fuer dein makro werd ich mir morgen mal näher anschauen :dance:

Hajo_Zi
12.11.2005, 21:01
Hallo Hans Bärbel,

hast Du mein Makro getestet? Es ist paar Zeilen länger, bringt aber keinen Fehler.

<a href="http://home.media-n.de/ziplies/" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

poltergeist
12.11.2005, 22:20
hi hajo :yelrotfl:

dank deinem makro bin ich der sache auf der spur gekommen :grins:

danke :hands:

gruss poltergeist :biggrinl:

hab es so jetzt lösen können,wobei dein makro natürlich auf anhieb ging :dance:

Option Explicit
Sub makro01()
Dim Dateien As Integer
Dim Zeichen As Integer
Dim DateiName As String
With Application.FileSearch
.NewSearch
.LookIn = "C:\test3"
.SearchSubFolders = False
.Filename = "*.*"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
For Zeichen = Len(.FoundFiles(Dateien)) - 4 To 1 Step -1
If Mid(.FoundFiles(Dateien), Zeichen, 1) = "\" Then
DateiName = Mid(.FoundFiles(Dateien), Zeichen + 1, Len(.FoundFiles(Dateien)) - 4)
Exit For
End If
Next Zeichen
Cells(Dateien, 1) = ExecuteExcel4Macro("'C:\test3\" & "[" & DateiName & "]Tabelle1" & "'!" & Range("C1").Address(, , xlR1C1))
Next Dateien
End If
End With
End Sub