Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Problem mit Excelmakro und Sharepoint

Problem mit Excelmakro und Sharepoint
Emilio
Hallo liebe VBA - Gemeinde
Ich habe ein Problem mit einer Exceldatei (resp. den darin enthaltenen Makros) und unserem Firmen-Sharepoint.
Und zwar folgendes Problem:
Eine Excel-Arbeitsmappe (ziemlich gross, daher kein Upload hier) wird geöffnet. Gleich bei Workbook.Open wird auch eine Userform gestartet welche in verschiedenen Textfeldern Textinhalte ab dieser Excel-Arbeitsmappe anzeigt.
Soweit so gut.
Bei Workbook-Open wird die Excel-Datei als Schreibgeschützt geöffnet.
Nun möchte ich natürlich (mittels Button und Password-Abfrage) den Usern ermöglichen, gleichwohl Änderungen an der Excel-Datei vorzunehmen. (also Schreibschutz aufheben)
Mein Problem nur:
Die Datei ist auf unserem Firmen-Sharepoint abgelegt.
D.h. man öffnet die Datei ab Sharepoint ohne sie auszuchecken.
Das Makro (Workbook-Open) startet also und öffnet die Datei schreibgeschützt. Auch die Userform wird angezeigt (dahinter auch die aktuelle Excel-Datei)
wie also müsste ich den folgenden Code anpassen / ändern, damit bei richtigem Password die aktuell geöffnete Datei ausgecheckt- und der Schreibschutz aufgehoben wird ?

Private Sub CommandButton1_Click()
pw = "test-pass"        'Password
'sofern das eingegebene Kennwort richtig ist, kann der Zustand von Schreibgeschützt auf
'Schreibmodus geändert werden.
If Passwordabfrage_Mutation.Password_Text = pw Then
Passwordabfrage_Mutation.Hide
Schreib_Lesestatus_Ändern       'es wird ins Programm "Schreib_Lesestatus_Ändern verzweigt
MsgBox "Administrationsbereich freigeschaltet !", vbInformation, "ADMINISTRATION"
'wenn eingegebenes Kennwort falsch ist, so wird Passwordabfrage geschlossen
Else: MsgBox "falsches Kennwort !", vbExclamation, "Falsches Kennwort"
Passwordabfrage_Mutation.Password_Text = ""
Exit Sub
End If
End Sub
Sub Schreib_Lesestatus_Ändern()
'Umschalten von Schreibgeschützt auf Normal
On Error Resume Next
ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite, notify:=True 'Schreibschutz wird aufgehoben
On Error GoTo 0
End Sub
Besten Dank für all Eure tips und Ratschläge !
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Problem mit Excelmakro und Sharepoint
31.08.2011 11:43:50
Emilio
Danke schon mal für den Link
den werde ich mir mal zu Gemüte führen und damit dann etwas testen.
Feedback folgt hier
Anzeige
AW: Problem mit Excelmakro und Sharepoint
31.08.2011 13:05:15
Emilio
So... habe also mal das obenstehende Makro rauskopiert und mal testhalber in meine Excel-Datei integriert.
Ich erhalte leider einen Laufzeitfehler 1004
Das Problem sehe ich eigentlich darin, dass ich die Excel-Datei selber ja aus Sharepoint öffne.
D.h. Beispiel:
in Sharepoint hab ich eine Datei "Test.xlsm"
darin enthalten sind sowohl die Userform1 wie auch die Daten, welche auf der Userform1 in Textfeldern dargestellt werden.
Mein Problem ist jetzt:
wenn ich die Datei "Test.xlsm" aus Sharepoint öffne (ich checke sie nicht aus, sondern starte sie einfach aus Sharepoint) so wird über das in der Datei integrierte "Workbook_open" eben die Userform1 geladen und die Datensätze ab dem Tabellenblatt1 in den Textfeldern angezeigt.
Nun möchte ich aber dass der User auf der Userform einen Button drücken kann, welcher dann
- die Datei "Text.xlsm" (in welcher ich mich ja schon befinde) nun in den Ausgecheckten Zustand bringt
- den Schreibschutz der Datei aufhebt
Geht das irgendwie ? (meinen Code findet man ja obenstehend zu Beginn dieses Themas)
Das Auschecken scheint irgendwie wohl nicht zu klappen, da die Datei "Test.xlsm" ja schon durch mich geöffnet ist.
Ich stell mir das so vor:
Datei wird irgendwie im Hintergrund geschlossen (ohne dass die Userform1 auch geschlossen wird) und dann eben als Ausgescheckt und ohne Schreibschutz wieder geladen.
Wer kann mir da helfen ? Bin echt am Verzweifeln mit diesem Sharepoint :-(
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Problem mit Excel-Makros und SharePoint


Schritt-für-Schritt-Anleitung

Um Excel-Makros in SharePoint auszuführen und den Schreibschutz einer Datei aufzuheben, befolge diese Schritte:

  1. Öffne die Excel-Datei direkt aus SharePoint, ohne sie auszuwählen.

  2. Integriere den folgenden VBA-Code in Dein Excel-Makro, um eine Passwortabfrage zu implementieren, die den Schreibschutz aufhebt:

    Private Sub CommandButton1_Click()
       Dim pw As String
       pw = "test-pass"  ' Passwort
    
       If Passwordabfrage_Mutation.Password_Text = pw Then
           Passwordabfrage_Mutation.Hide
           Schreib_Lesestatus_Ändern  ' Umschalten auf Schreibmodus
           MsgBox "Administrationsbereich freigeschaltet !", vbInformation, "ADMINISTRATION"
       Else
           MsgBox "falsches Kennwort !", vbExclamation, "Falsches Kennwort"
           Passwordabfrage_Mutation.Password_Text = ""
           Exit Sub
       End If
    End Sub
    
    Sub Schreib_Lesestatus_Ändern()
       On Error Resume Next
       ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite, notify:=True ' Schreibschutz wird aufgehoben
       On Error GoTo 0
    End Sub
  3. Teste den Button in der Userform, um sicherzustellen, dass er den Schreibschutz aufheben kann, wenn das Passwort korrekt eingegeben wird.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn die Excel-Datei bereits geöffnet ist. Stelle sicher, dass Du die Datei aus SharePoint auscheckst, bevor Du Änderungen vornimmst.

    Lösung: Versuche, die Datei im Hintergrund zu schließen (z. B. durch ThisWorkbook.Close) und lade sie dann im Ausgecheckten Zustand erneut.

  • Schreibgeschützter Zustand bleibt: Wenn die Datei schreibgeschützt bleibt, könnte es an fehlenden Berechtigungen liegen.

    Lösung: Überprüfe die Berechtigungen in SharePoint und stelle sicher, dass Du die notwendigen Rechte zum Auschecken der Datei hast.


Alternative Methoden

Wenn Du Schwierigkeiten hast, Excel-Makros in SharePoint auszuführen, gibt es einige alternative Methoden:

  • Excel Online verwenden: Du kannst versuchen, die Datei in Excel Online zu öffnen. Dies ermöglicht es Dir, die Datei in einem anderen Modus zu bearbeiten, auch wenn Makros möglicherweise nicht unterstützt werden.

  • SharePoint API nutzen: Mit der SharePoint API kannst Du Programmabläufe erstellen, die das Auschecken und Bearbeiten von Dateien ohne VBA ermöglichen.


Praktische Beispiele

Ein einfaches Beispiel für das Öffnen einer SharePoint-Datei mit VBA könnte so aussehen:

Sub OpenSharePointFile()
    Dim wb As Workbook
    Set wb = Workbooks.Open("https://deinsharepointlink/Test.xlsm")
    ' Hier kannst Du weitere Makros ausführen oder die Datei bearbeiten
End Sub

Vergewissere Dich, dass die URL korrekt ist und dass die Datei in SharePoint verfügbar ist.


Tipps für Profis

  • Verwende On Error Resume Next mit Bedacht, um Fehler zu ignorieren. Dies kann dazu führen, dass Probleme unentdeckt bleiben.

  • Teste Deine Makros in einer lokalen Kopie, bevor Du sie auf SharePoint anwendest, um sicherzustellen, dass alles reibungslos funktioniert.

  • Halte Deine Makros einfach: Zu komplexe Makros können in SharePoint problematisch sein. Halte die Logik einfach und gut strukturiert.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Makro in SharePoint funktioniert?
Überprüfe die Berechtigungen und teste das Makro lokal, bevor Du es in SharePoint implementierst.

2. Was tun, wenn ich die Datei nicht auschecken kann?
Stelle sicher, dass Du die notwendigen Berechtigungen hast. Wenn die Datei schreibgeschützt ist, könnte das an anderen Benutzern liegen, die die Datei gerade verwenden.

3. Unterstützt Excel Online Makros?
Excel Online unterstützt keine VBA-Makros. Du musst die Datei in der Desktop-Version von Excel öffnen, um Makros auszuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige