Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mappe und PDF auf Sharepoint uploaden

Mappe und PDF auf Sharepoint uploaden
06.11.2018 23:02:38
Oisse
Hallo Zusammen,
ich habe folgendes Problem. Meine Excelmappe steht in SharePoint 365. Diese öffne ich, weil sie Makros enthält, mit meinem Excel Desktop. Das funktioniert alles einwandfrei.
Wenn ich jetzt aber ein Backup im angelegten Backup-ordner auf SharePoint machen möchte, funktioniert das nicht. Auch wenn ich ein PDF erzeugen möchte und es im Dateipfad der SharePoint Mappe in einem Ordner ablegen möchte funktioniert das nicht.
Fehlermeldung: Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet oder es ist beim Speichern ein Fehler aufgetreten.
Wie also, bitte muss ich vorgehen, damit ich einen Upload auf SharePoint durchführen kann? Wie kann ich das ansprechen.
Hier mal der Code für das Backup:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim SavePath As String
Dim FileName As String
Dim FileExtension As String
Dim FileDate As String
Dim FileBackupName As String
Dim FileUsername As String
Dim Kopien As Long
Dim Datei As String
Dim DatAlt As String
Dim DateiL?sch As String
Dim x As Long
Dim Z?hler As Long
Kopien = 10        'Anzahl der Backups im Ordner
SavePath = ThisWorkbook.Path & "\Backup\"
FileName = left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
FileExtension = Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") + 1)
FileUsername = Environ("UserName")
FileDate = Format(Now, "YYYYmmdd_hhmmss")
' --- letztes Backup l?schen
x = Len(FileName & "_" & FileUsername & "_") + 1
DatAlt = "ZZZ"
Datei = Dir(SavePath & FileName & "_" & FileUsername & "_*." & FileExtension)
Do While Datei  ""
Z?hler = Z?hler + 1
If Mid(Datei, x) 

Vielen Dank schon mal und ich hoffe, ihr könnt helfen.
Gruß Oisse

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
selber gelöst
07.11.2018 11:11:13
Oisse
Ich hab´s mittlerweile selber hinbekommen.
Danke für´s drüberschauen.
Gruß
Oisse
Schön für dich...
07.11.2018 11:14:04
Werner
Hallo,
...was hälst du davon deine Lösung hier dann auch zu posten? Vielleicht könnte ja jemand mit dem gleichen/einem ähnlichen Problem davon profitierten, was schließlich auch Sinn und Zweck eines solchen Forums ist.
Gruß Werner
AW: Schön für dich...
07.11.2018 12:17:27
Oisse
Hallo Werner,
das hatte ich auch noch vor. Danke für die Info. Leider bin ich momentan sehr unter Zeitdruck.
Ich werde die Lösung noch posten.
Gruß
Oisse
AW: Schön für dich...
10.11.2018 18:05:39
Oisse
Hier also meine Vorgehensweise um ein worddokument von einem SharePoint-Ordner zu holen:

Info = ThisWorkbook.Path & "/Anlagen/Infoblatt.docx"
Info = Replace(Info, " ", "%20")

Scheinbar geht es darum, die Leerzeichen durch "%20" zu ersetzen.
Beim Speichern einer Pdf in einem SharePoint-Ordner funktioniert bei mir das:
Speicherpfad = ThisWorkbook.Path & "\Speicherordner\"
PDFName = "Liste" & ".pdf"
With wks
.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
Speicherpfad & PDFName, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
.Visible = xlSheetHidden
End With

Warum es hier ohne Ersetzen der Leerzeichen mit "%20" funktioniert, hab ich keine Ahnung.
Für das Backup ist ein sehr umfangreicher Code erforderlich.
Ich habe ihn im I-Net gefunden und für mich angepasst.
Zuerst muss man zwei Verweise setzten. Einmal auf "Microsoft Scripting Runtime" und auf "Windows Script Host Object Model"
Dann muss ein Klassenmodul erstellt werden mit dem Namen "DriveMapper"
Dann kommt folgender Code in dieses Klassenmodul:

Option Explicit
Private oMappedDrive As Scripting.Drive
Private oFSO As New Scripting.FileSystemObject
Private oNetwork As New WshNetwork
Private Sub Class_Terminate()
UnmapDrive
End Sub
Public Function MapDrive(NetworkPath As String) As Scripting.Folder
Dim DriveLetter As String, i As Integer
UnmapDrive
For i = Asc("Z") To Asc("A") Step -1
DriveLetter = Chr(i)
If Not oFSO.DriveExists(DriveLetter) Then
oNetwork.MapNetworkDrive DriveLetter & ":", NetworkPath
Set oMappedDrive = oFSO.GetDrive(DriveLetter)
Set MapDrive = oMappedDrive.RootFolder
Exit For
End If
Next i
End Function
Private Sub UnmapDrive()
If Not oMappedDrive Is Nothing Then
If oMappedDrive.IsReady Then
oNetwork.RemoveNetworkDrive oMappedDrive.DriveLetter & ":"
End If
Set oMappedDrive = Nothing
End If
End Sub

Anschließend habe ich folgenden Code in einem allgemeinen Modul:
Sub BackUp()
Dim SavePath As String
Dim FileName As String
Dim FileExtension As String
Dim FileDate As String
Dim FileBackupName As String
Dim FileUsername As String
Dim Kopien As Long
Dim Datei As String
Dim DatAlt As String
Dim DateiL?sch As String
Dim x As Long
Dim Z?hler As Long
Dim strDir As String
Dim objFSO As Object
Dim objDir As Object
Dim dm As New DriveMapper
Dim sharepointFolder As Scripting.Folder
SavePath = Replace(ThisWorkbook.Path & "/BackUp/", " ", "%20")
Set sharepointFolder = dm.MapDrive(SavePath)
Set objFSO = CreateObject("scripting.filesystemobject")
strDir = sharepointFolder
Set objDir = objFSO.GetFolder(strDir)
Kopien = 10        'Anzahl der Backups im Ordner
FileName = left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
FileExtension = Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") + 1)
FileUsername = Environ("UserName")
FileDate = Format(Now, "YYYYmmdd_hhmmss")
FileBackupName = objDir & FileName & "_" & FileUsername & "_" & FileDate & "." &  _
FileExtension
' --- letztes Backup l?schen
x = Len(FileName & "_" & FileUsername & "_") + 1
DatAlt = "ZZZ"
Datei = Dir(objDir & FileName & "_" & FileUsername & "_*." & FileExtension)
Do While Datei  ""
Z?hler = Z?hler + 1
If Mid(Datei, x) 

Ich hoffe, dass jemand etwas damit anfangen kann, und nun nicht mehr, so wie ich, stundenlang nach einer Lösung suchen muss.
Gruß Oisse
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige