Herbers Excel-Forum - das Archiv
True / False bei Freigabe Arbeitsmappe
Betrifft: True / False bei Freigabe Arbeitsmappe
von: andrea
Geschrieben am: 06.11.2003 08:46:32
Fröhlichen guten Morgen,
habe ein kleines Problem. Um eine Pivottabelle zu aktualisieren während die Arbeitsmappe für mehrere Benutzer freigegeben ist, habe ich folgendes Programm geschrieben.
Sub PivotMitFreigabe()
ActiveWorkbook.ExclusiveAccess
ActiveSheet.PivotTables("PivotTable1").RefreshTable
With ActiveWorkbook
.KeepChangeHistory = True
.ChangeHistoryDuration = 30
End With
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Name, AccessMode:=xlShared
End Sub
Das läuft auch. Sofern die Mappe wirklich freigegeben ist. Und das ist nicht immer der Fall (freundliche Kollegen!)Um das Abzufangen habe ich eine Abfrage davorgesetzt. Wenn die Mappe nicht freigegeben ist, soll nur aktualisiert werden, sonst nichts. Sieht jetzt so aus:
Sub PivotMitFreigabe()
If ActiveWorkbook.ExclusiveAccess = True Then
ActiveSheet.PivotTables("PivotTable1").RefreshTable
Else
ActiveWorkbook.ExclusiveAccess
ActiveSheet.PivotTables("PivotTable1").RefreshTable
With ActiveWorkbook
.KeepChangeHistory = True
.ChangeHistoryDuration = 30
End With
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Name, AccessMode:=xlShared
End If
End Sub
Läuft aber nicht. Schon in der ersten Zeile wird ein Fehler angezeigt.
Weiß jemand warum???
Danke für Antwort, Andrea
Betrifft: AW: True / False bei Freigabe Arbeitsmappe
von: Frank
Geschrieben am: 06.11.2003 09:39:21
Hallo,
"ExclusiveAccess" ist eine Methode und kann nur zum Setzen des exklusiven Bearbeitens verwendet werden. Für die Abfrage der exklusiven Bearbeitung gibt es die Funktion "MultiUserEditing" (siehe auch Hilfe zu "ExclusiveAccess"). Dein Programm müßte demzufolge folgendermaßen aussehen (nicht getestet!):
Sub PivotMitFreigabe()
If Not ActiveWorkbook.MultiUserEditing Then
'alles andere unverändert
End Sub
MfG
Frank
Betrifft: Danke, läuft super!!! (o.T.)
von: andrea
Geschrieben am: 06.11.2003 10:06:33
.