AW: workbooks.open unter 2010 - HELP
07.04.2012 03:03:56
fcs
Hallo Doro,
ich hab dein Makro-Gerüst mal soweit ergänzt, dass es bei mir unter Excel 2010 lauffähig ist.
(Variablendeklaration + Set - Anweisung für "FileScriptingObject".
Es funktioniert bei mir. Ich hab auf einem lokalen Laufwerk getestet und nicht in einem Netzlaufwerk. Allerding musste ich noch einen Laufwerkswechsel einfügen, damit das richtige Verzeichnis im Dateiauswahldialog angezeigt wird.
Warum bei der Kollegin Probleme auftreten? Keine Ahnung. Da das per Makro-Recorder aufgezeichnete Öffnen der Datei auch nicht funktioniert, wird es jetzt schwierig.
Als erstes mal beim Systemadmin nachfragen, ob Makrozugriffe auf Dateien im Netzlaufwerk generell geblockt werden.
Dann unter den Excel-Optionen der Kollegin mal die Einstellungen im Sicherheitscenter prüfen/anpassen.
1. Active-X Einstellungen
Hier evtl. "Abgesicherten Modus" deaktivieren"
2. Vertrauenswürdige Speicherorte
Hier ggf. die Option für Netzlaufwerke zulassen und das Verzeichnis "G:\DATA\B - Data Requests" inkl. Unterverzeichnis in der Liste der vertrauenswürdigen Orte hinzufügen.
3. Makro-Anpassung
Im Makro wird wird die Aktualisierung der Links vorübergehend deaktiviert und auch die Alarme. Evtl. ist da was an Problemen verborgen.
Probiere mal folgendes - So sollte die Datei auch ohne Linkaktualisierung geöffnet werden.:
With Application
.Workbooks.Open Filename:=FileToOpen, UpdateLinks:=False
End With
Link-Aktualisierungen in nicht vertrauenswürdige Speicherort erfordern in Excel nämlich auch manuelle Bestätigungen.
Da ich mit Excel 2010 auch erst ein paar Wochen arbeite, kann ich nicht sagen, ob eine der 3 Maßnahmen erfolgreich ist oder ggf. eine Kombination mehrerer Maßnahmen. Also immer erst eine Änderung machen, Datei speichern, schließen und wieder öffnen.
Viel Glück beim Probieren.
Gruß
Franz
Private Sub Workbook_Open()
Dim FileToOpen As Variant
Dim fs As Object, Ordner As Object
Dim strPath
strPath = "G:\DATA\B - Data Requests"
'strPath = "H:\DATA\B - Data Requests"
Set fs = CreateObject("Scripting.FileSystemObject")
' Set Ordner = fs.getfolder("G:\DATA\B - Data Requests")
Set Ordner = fs.getfolder(strPath)
'ggf.Laufwerk wechseln
If Left(VBA.CurDir, 1) Left(strPath, 1) Then VBA.ChDrive Left(strPath, 1)
If Ordner.subfolders.Count * 1 + Ordner.Files.Count * 1 0 Then _
ChDir Ordner
FileToOpen = Application.GetOpenFilename( _
fileFilter:="request file (*.xls; *.xlsx),*.xls; *.xlsx", _
Title:="Please select the Data Request Sheet.")
If FileToOpen = False Then Exit Sub
With Application
.AskToUpdateLinks = False
.DisplayAlerts = False
.Workbooks.Open Filename:=FileToOpen
.AskToUpdateLinks = True
.DisplayAlerts = True
End With
End Sub