Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei wird im Sharepoint nicht gespeichert

Forumthread: Datei wird im Sharepoint nicht gespeichert

Datei wird im Sharepoint nicht gespeichert
18.05.2018 13:01:00
torro100
Hallo Zusammen
mit u.g. Code öffne ich eine Excel Datei, die in einem SharePoint liegt.
Er öffnet, kopiert, sortiert und löscht wie ich es möchte.
Wenn es aber um das Speichern und Schliessen geht, bleibt er stehen.
Bekomme keine Fehlermeldung, die Datei ist einfach offen mit dem gerade kopierten Eintrag.
Ich habe irgendwo etwas mit WebDav und SharePoint gehört, kann das aber nicht zuordnen, geschweige denn hier im Abschnitt Datei speichern und schliessen anwenden.
Bin für jede Hilfe dankbar.
vg
Mike
Sub export_NDL_ChargeBack()
Dim strDatei, wks As Worksheet, wb As Workbook
Dim lastrow As Long
'Reportzeile kopieren
ActiveWorkbook.Unprotect Password:="xxx"
Worksheets("assumptions").Rows(120).Copy
Workbooks.Open "SharePoint Path include filename.xlsm"
'nächste freie zeile suchen
lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox "Lastrow is " & lastrow
Application.EnableEvents = False
Application.ScreenUpdating = False
'Daten kopieren
Cells(lastrow + 1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:=xlPasteFormats
'sortieren und Dubletten löschen
Range("A5:S500").Select
ActiveWorkbook.Worksheets("overview").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("overview").Sort.SortFields.Add Key:=Range("A5:A500" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("overview").Sort.SortFields.Add Key:=Range("S5:S500" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("overview").Sort
.SetRange Range("A5:S500")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A5:S500").Select
ActiveSheet.Range("$A$4:$S$500").RemoveDuplicates Columns:=1, Header:=xlYes
Range("A4").Select
'Datei speichern und schliessen
wks.Parent.Close saveChanges:=True
Set wks = Nothing
ActiveWorkbook.Protect Password:="xxx"
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei wird im Sharepoint nicht gespeichert
20.05.2018 10:53:46
fcs
Hallo Mike,
etwas merkwürdig, dass keine Fehler-Meldung kommt. Eigentlich müsste hier
Fehler 91 angezeigt werden mit Text "Objektvariable oder With-Blockvariable nicht festgelegt"
Du hast der Variblen wks kein Tabellenblatt zugewiesen, deshalb der Fehler.
Weise der Variablen wb beim Öffne der Sharepoint-Datei, diese Arbeitsmappe zu.
Ich hab in deinem Makro die anzupassenden Zeilen markiert.
Gruß
Franz
Sub export_NDL_ChargeBack()
Dim strDatei, wks As Worksheet, wb As Workbook
Dim lastrow As Long
'Reportzeile kopieren
ActiveWorkbook.Unprotect Password:="xxx"
Worksheets("assumptions").Rows(120).Copy
Set wb = Workbooks.Open("SharePoint Path include filename.xlsm") '### geändert
'nächste freie zeile suchen
lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox "Lastrow is " & lastrow
Application.EnableEvents = False
Application.ScreenUpdating = False
'Daten kopieren
Cells(lastrow + 1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:=xlPasteFormats
'sortieren und Dubletten löschen
Range("A5:S500").Select
ActiveWorkbook.Worksheets("overview").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("overview").Sort.SortFields.Add _
Key:=Range("A5:A500"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("overview").Sort.SortFields.Add _
Key:=Range("S5:S500"), SortOn:=xlSortOnValues, Order:=xlDescending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("overview").Sort
.SetRange Range("A5:S500")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A5:S500").Select
ActiveSheet.Range("$A$4:$S$500").RemoveDuplicates Columns:=1, Header:=xlYes
Range("A4").Select
'Datei speichern und schliessen
wb.Close saveChanges:=True                                    '### geändert
Set wb = Nothing: Set wks = Nothing                           '### geändert
ActiveWorkbook.Protect Password:="xxx"
End Sub
Man den Code noch etwas optimieren/verfeinern, so dass z.B. keine Select-Anweisungen erforderlich sind.
Sub export_NDL_ChargeBack_Neu()
Dim strDatei, wks As Worksheet, wb As Workbook
Dim lastrow As Long
'Reportzeile kopieren
ActiveWorkbook.Unprotect Password:="xxx"
Worksheets("assumptions").Rows(120).Copy
Application.EnableEvents = False
Application.ScreenUpdating = False
'    Set wb = Workbooks.Open("SharePoint Path include filename.xlsm")
Set wb = Workbooks.Open("C:\users\Public\Test\filename.xlsm")
Set wks = wb.Worksheets("overview")
With wks
'nächste freie zeile suchen
lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
'MsgBox "Lastrow is " & lastrow
'Daten kopieren
.Cells(lastrow + 1, 1).PasteSpecial Paste:=xlPasteValues
.Cells(lastrow + 1, 1).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
'sortieren und Dubletten löschen
If lastrow + 1 > 5 Then
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("A5"), _
SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("S5"), _
SortOn:=xlSortOnValues, Order:=xlDescending, _
DataOption:=xlSortNormal
With .Sort
.SetRange wks.Range("A5:S" & (lastrow + 1))
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
.Range("$A$4:$S$" & (lastrow + 1)).RemoveDuplicates Columns:=1, _
Header:=xlYes
End If
End With
Range("A4").Select
'Datei speichern und schliessen
wb.Close saveChanges:=True
Set wb = Nothing: Set wks = Nothing
ActiveWorkbook.Protect Password:="xxx"
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Datei wird im Sharepoint nicht gespeichert
22.05.2018 09:51:17
torro100
Hallo Franz,
supi, danke.
vg
Mike
;
Anzeige

Infobox / Tutorial

Datei im SharePoint speichern: Tipps und Tricks


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei im SharePoint mit dem folgenden Code:

    Set wb = Workbooks.Open("SharePoint Path include filename.xlsm")
  2. Kopiere die erforderlichen Daten aus Deinem Arbeitsblatt:

    Worksheets("assumptions").Rows(120).Copy
  3. Finde die nächste freie Zeile in Deinem Zielarbeitsblatt:

    lastrow = wb.Worksheets("overview").Cells(Rows.Count, 1).End(xlUp).Row
  4. Füge die kopierten Daten ein:

    wb.Worksheets("overview").Cells(lastrow + 1, 1).PasteSpecial Paste:=xlPasteValues
  5. Speichern und schließen der Arbeitsmappe:

    wb.Close saveChanges:=True

Häufige Fehler und Lösungen

  • Fehler 91: "Objektvariable oder With-Blockvariable nicht festgelegt"
    Dieser Fehler tritt auf, wenn Du einer Variablen kein gültiges Objekt zugewiesen hast. Stelle sicher, dass Du das Arbeitsblatt der Variablen wks zuweist:

    Set wks = wb.Worksheets("overview")
  • Datei bleibt offen ohne Fehlermeldung
    Wenn die Datei nach dem Speichern offen bleibt, überprüfe, ob Du die Close-Methode korrekt verwendest:

    wb.Close saveChanges:=True

Alternative Methoden

Falls Du Probleme beim Speichern über SharePoint hast, kannst Du auch die Datei lokal speichern und anschließend manuell hochladen. Verwende dazu den folgenden Code:

wb.SaveAs "C:\users\Public\Test\local_filename.xlsm"

Das ermöglicht Dir, die Datei lokal zu speichern und später über den SharePoint-Explorer hochzuladen.


Praktische Beispiele

Hier ist ein optimierter Code, der keine Select-Anweisungen verwendet und die Arbeit mit SharePoint vereinfacht:

Sub export_NDL_ChargeBack_Neu()
    Dim wb As Workbook
    Dim wks As Worksheet
    Dim lastrow As Long

    Set wb = Workbooks.Open("SharePoint Path include filename.xlsm")
    Set wks = wb.Worksheets("overview")

    lastrow = wks.Cells(wks.Rows.Count, 1).End(xlUp).Row
    wks.Cells(lastrow + 1, 1).PasteSpecial Paste:=xlPasteValues

    wb.Close saveChanges:=True
End Sub

Tipps für Profis

  • Nutze With-Anweisungen: Das reduziert den Code und verbessert die Lesbarkeit.
  • Verwende Application.EnableEvents und Application.ScreenUpdating: Dies kann die Ausführungsgeschwindigkeit Deines Codes erhöhen.
  • Speichere häufig: Wenn Du mit großen Datenmengen arbeitest, ist es ratsam, regelmäßig zu speichern, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich eine Datei im SharePoint wiederherstellen?
Wenn Du eine Datei versehentlich gelöscht hast, gehe zu den SharePoint-Dokumenten und suche im Papierkorb nach der Datei. Von dort kannst Du sie wiederherstellen.

2. Was passiert, wenn ich die Datei im SharePoint direkt lösche?
Dateien, die im SharePoint gelöscht werden, landen zunächst im Papierkorb. Dort kannst Du sie innerhalb einer bestimmten Frist wiederherstellen, bevor sie dauerhaft gelöscht werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige