Microsoft Excel

Herbers Excel/VBA-Archiv

Workbook.Open im WSS | Herbers Excel-Forum


Betrifft: Workbook.Open im WSS von: Dan
Geschrieben am: 17.11.2009 15:49:57

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

  

Betrifft: AW: Workbook.Open im WSS von: Oberschlumpf
Geschrieben am: 17.11.2009 15:52:11

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


  

Betrifft: AW: Workbook.Open im WSS von: Dan
Geschrieben am: 17.11.2009 15:53:38

Hallo Thorsten,

so weit komme ich gar nicht. Ich kann gar keine Datei öffnen.

LG Dan


  

Betrifft: bin überfragt von: Oberschlumpf
Geschrieben am: 17.11.2009 15:57:42

Hi Dan

Das haste leider nich erwähnt. Ich weiß dann auch nix.
Was is denn WWS?

Ciao
Thorsten


  

Betrifft: AW: Workbook.Open im WSS von: Tino
Geschrieben am: 17.11.2009 16:29:24

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


  

Betrifft: fehlt noch i=i+1 von: Tino
Geschrieben am: 17.11.2009 17:04:10

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


  

Betrifft: klappt auch nicht von: Dan
Geschrieben am: 18.11.2009 08:19:13

Hallo Tino,

leider kommt wieder bei

sDatei = Dir$(sPfad & "*.xls")

die Fehlermeldung: Laufzeitfehler 52: Dateiname oder -nummer falsch

:-(

Lg Dan


  

Betrifft: Versuche mal diese Version. von: Tino
Geschrieben am: 18.11.2009 08:56:10

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


  

Betrifft: AW: Versuche mal diese Version. von: Dan
Geschrieben am: 18.11.2009 09:36:02

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


  

Betrifft: sorry weis auch nicht weiter, Frage offen oT. von: Tino
Geschrieben am: 18.11.2009 09:43:24




  

Betrifft: habe eine Lösung gefunden von: Dan
Geschrieben am: 18.11.2009 13:48:23

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