HERBERS Excel-Forum - das Archiv
Workbook.Open im WSS
Dan

Hallo,
ich möchte alle Excel-Dateien einer WindowsSharePoint-DocumentList nacheinander öffnen und bearbeiten.
Folgendes Makro habe ich für diese Aktion in einem "normalen" Verzeichnis.
Sub test()
Application.ScreenUpdating = False
sPfad = "c:/temp"
If Right(sPfad, 1) <> "/" Then
sPfad = sPfad & "/"
End If
sDatei = Dir(sPfad & "*.xls")
Do While sDatei <> ""
Workbooks.Open sPfad & sDatei
AKTION
Workbooks(Workbooks.Count).Close savechanges:=True
sDatei = Dir()
Loop
Application.ScreenUpdating = True
End Sub
Im Wss kommt die Fehlermeldung 'Dateiname oder -nummer falsch' :-(
Könnt ihr mir weiterhelfen?
LG Dan

AW: Workbook.Open im WSS
Oberschlumpf

Hi
Wenn nach AKTION die zuletzt geöffnete Datei noch immer aktiv ist, dann mach mal aus
Workbooks(Workbooks.Count).Close savechanges:=True
=
ActiveWorkbook.Close savechanges:=True
Hilfts?
Ciao
Thorsten
AW: Workbook.Open im WSS
Dan

Hallo Thorsten,
so weit komme ich gar nicht. Ich kann gar keine Datei öffnen.
LG Dan
bin überfragt
Oberschlumpf

Hi Dan
Das haste leider nich erwähnt. Ich weiß dann auch nix.
Was is denn WWS?
Ciao
Thorsten
AW: Workbook.Open im WSS
Tino

Hallo,
versuche es mal so.
Erst Dateien sammeln und danach die Aktionen ausführen.
Sub test()
Dim meArDateien() As String
Dim i As Integer
Dim sDatei$, sPfad$
Dim oWB As Workbook
sPfad = "C:\temp"
If Right(sPfad, 1) <> "\" Then
sPfad = sPfad & "\"
End If
sDatei = Dir$(sPfad & "*.xls")
Do While sDatei <> ""
ReDim Preserve meArDateien(i)
meArDateien(i) = sPfad & sDatei
sDatei = Dir$()
Loop
If i > 0 Then
Application.ScreenUpdating = False
For i = 0 To UBound(meArDateien)
Set oWB = Workbooks.Open(sPfad & sDatei)
AKTION
oWB.Close savechanges:=True
Next i
Application.ScreenUpdating = True
End If
End Sub
Gruß Tino
fehlt noch i=i+1
Tino

Hallo,
da fehlt noch i=i+1
Sub test()
Dim meArDateien() As String
Dim i As Integer
Dim sDatei$, sPfad$
Dim oWB As Workbook
sPfad = "C:\temp"
If Right(sPfad, 1) <> "\" Then
sPfad = sPfad & "\"
End If
sDatei = Dir$(sPfad & "*.xls")
Do While sDatei <> ""
ReDim Preserve meArDateien(i)
meArDateien(i) = sPfad & sDatei
i = i + 1
sDatei = Dir$()
Loop
If i > 0 Then
Application.ScreenUpdating = False
For i = 0 To UBound(meArDateien)
Set oWB = Workbooks.Open(sPfad & sDatei)
AKTION
oWB.Close savechanges:=True
Next i
Application.ScreenUpdating = True
End If
End Sub
Gruß Tino
klappt auch nicht
Dan

Hallo Tino,
leider kommt wieder bei
sDatei = Dir$(sPfad & "*.xls")
die Fehlermeldung: Laufzeitfehler 52: Dateiname oder -nummer falsch
:-(
Lg Dan
Versuche mal diese Version.
Tino

Hallo,
warum der Fehler bei Dir kommt weis ich auch nicht.
Sub test()
Dim meArDateien() As String
Dim i As Integer
Dim oWB As Workbook
Dim FSO As Object, SourceFolder As Object, FileItem As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder("C:\temp") 'Ordner angeben
For Each FileItem In SourceFolder.Files
If LCase(FileItem) Like "*.xls" Then 'Filter
meArDateien(i) = FileItem
i = i + 1
End If
Next FileItem
If i > 0 Then
Application.ScreenUpdating = False
For i = 0 To UBound(meArDateien)
Set oWB = Workbooks.Open(meArDateien(i))
'          AKTION
oWB.Close savechanges:=True
Next i
Application.ScreenUpdating = True
End If
Set FSO = Nothing: Set SourceFolder = Nothing
End Sub
Gruß Tino
AW: Versuche mal diese Version.
Dan

Hallo Tino,
funktioniert leider nicht. Es ist ja eben kein Filesystem-Ordner.
Die Dateien liegen in einem Ordner, auf den über die Windows SharePoint Services zugegriffen wird.
LG Dan
sorry weis auch nicht weiter, Frage offen oT.
Tino

habe eine Lösung gefunden
Dan

Hallo,
ich habe es jetzt so gelöst, dass ich das Verzeichnis auf Z: verbinde und dort mit Filesearch suche.
Danke für eure Bemühungen.
LG Dan