Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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
Sharepoint Dateien per VBA drucken
28.09.2023 10:25:46
marie_excel
Hallo zusammen,

ich habe ein Formular gebaut mit 18 Checkboxen und 3 Buttons. Jede Checkbox soll für ein Dokument stehen und durch den CommandButton1 sollen die ausgewählten Dokumente gedruckt werden. Die Dateien liegen jeweils auf Sharepoint ab. Ich habe mir folgenden Code gebaut, mit dem ich aber nur erreiche, dass die Datei geöffnet. die aktuelle Arbeitsmappe gedruckt wird und sich meine Arbeitsmappe danach schließt... Eigentlich will ich einfach nur die entsprechenden Dokumente hinter den Checkboxen drucken (Mehrfachauswahl soll möglich sein) und die Dokumente am besten gar nicht erst öffnen...

Ich brauche bitte Hilfe...

Private Sub CommandButton1_Click()
Call Drucken
End Sub

Sub Drucken()

Dim CheckBoxes(1 To 18) As Object
Dim HyperlinkAddresses(1 To 18) As String
Dim i As Integer
Dim wb As Workbook
Dim openedWb As Workbook

Set wb = ThisWorkbook

' Checkbox und Hyperlink
For i = 1 To 18
Set CheckBoxes(i) = Me.Controls("CheckBox" & i)
' Hyperlink-Adressen:
HyperlinkAddresses(1) = "http://www.example.com/Datei" & i & ".xlsx"
Next i

Application.ScreenUpdating = False

For i = 1 To 18
If CheckBoxes(i).Value = True Then
If HyperlinkAddresses(i) > "" Then
' Hyperlink öffnen
ThisWorkbook.FollowHyperlink Address:=HyperlinkAddresses(i)

' Dokument laden
Do While Workbooks.Count > 1
DoEvents
Loop

' Arbeitsmappe speichern und drucken
Set openedWb = ActiveWorkbook
openedWb.Worksheets(1).PrintOut
openedWb.Close SaveChanges:=False
Else
MsgBox "Hyperlink-Adresse für CheckBox" & i & " nicht definiert.", vbExclamation, "Fehler"
End If
End If
Next i

Application.ScreenUpdating = True
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub CommandButton3_Click()
' Alle Checkboxen anwählen
Dim i As Integer
For i = 1 To 18
Me.Controls("CheckBox" & i).Value = True
Next i
End Sub

Private Sub CommandButton4_Click()
' Alle Checkboxen abwählen
Dim i As Integer
For i = 1 To 18
Me.Controls("CheckBox" & i).Value = False
Next i
End Sub


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sharepoint Dateien per VBA drucken
28.09.2023 10:52:18
Yal
Hallo Marie,

nur nebenbei: das ist eine potentielle Endlosschleife:
                ' Dokument laden

Do While Workbooks.Count > 1
DoEvents
Loop


Grund: es gibt innerhalb der Do..Loop keine Anweisung, die eine Änderung der Anzahl der Workbooks bewirkt. Es müsste auch noch reduzierend sein, da die Anzahl auf null kommen müsste, um aus der Schleife auszusteigen.
Anzahl Workbooks gleich null bedeutet auch, das WB mit diesem Makro ist auch geschlossen. Also ein nicht erreichbarer Zustand.

VG
Yal
Anzeige
AW: Sharepoint Dateien per VBA drucken
28.09.2023 11:10:07
Ulf
statt


ThisWorkbook.FollowHyperlink Address:=HyperlinkAddresses(i)

' Dokument laden
Do While Workbooks.Count > 1
DoEvents
Loop

' Arbeitsmappe speichern und drucken
Set openedWb = ActiveWorkbook
openedWb.Worksheets(1).PrintOut
openedWb.Close SaveChanges:=False



Set openedwb = Workbooks.Open(HyperlinkAddresses(i))
'ggf If ActiveWorkbook.name>Thisworkbook.name
openedWb.Worksheets(1).PrintOut
openedWb.Close SaveChanges:=False

hth
Ulf
Anzeige
AW: Sharepoint Dateien per VBA drucken
28.09.2023 11:48:49
marie_excel
Hallo Ulf,

tausend Dank !! Leider passiert bei mir nach 1-3 Sekunden laden immer noch nichts... liegt es wohl an meinem Sharepoint Link? Wenn ich den so anwähle, öffnet sich wie gewünscht das Dokument...

Private Sub CommandButton1_Click()

Call Drucken
End Sub

Sub Drucken()
Dim CheckBoxes(1 To 18) As Object
Dim HyperlinkAddresses(1 To 18) As String
Dim i As Integer
Dim wb As Workbook
Dim openedWb As Workbook

Set wb = ThisWorkbook

' Initialisiere die Checkbox-Objekte und Hyperlink-Adressen
For i = 1 To 18
Set CheckBoxes(i) = Me.Controls("CheckBox" & i)
' Hier die Hyperlink-Adressen eintragen
' Zum Beispiel: HyperlinkAddresses(i) = "https://Beispiel.sharepoint.com/..."
' Hier ist ein Beispiel für Checkbox 1:
HyperlinkAddresses(1) = "https://Beispiel.sharepoint.com/Checkliste.xlsx"
Next i

Application.ScreenUpdating = False

For i = 1 To 18
If CheckBoxes(i).Value = True Then
If HyperlinkAddresses(i) > "" Then
' Hyperlink öffnen
Set openedWb = Workbooks.Open(HyperlinkAddresses(i))

' Drucke das erste Arbeitsblatt der geöffneten Arbeitsmappe
openedWb.Worksheets(1).PrintOut
openedWb.Close SaveChanges:=False
Else
MsgBox "Hyperlink-Adresse für CheckBox" & i & " nicht definiert.", vbExclamation, "Fehler"
End If
End If
Next i

Application.ScreenUpdating = True
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub CommandButton3_Click()
' Alle Checkboxen anwählen
Dim i As Integer
For i = 1 To 18
Me.Controls("CheckBox" & i).Value = True
Next i
End Sub

Private Sub CommandButton4_Click()
' Alle Checkboxen abwählen
Dim i As Integer
For i = 1 To 18
Me.Controls("CheckBox" & i).Value = False
Next i
End Sub

Anzeige
AW: Sharepoint Dateien per VBA drucken
28.09.2023 18:11:18
Ulf
Hi,
wichtig zu wissen wäre ob und wie du an Sharepoint angemeldet bist, während des Ablaufs.
Testweise nach Öffnen:
'Besser noch einen Timer dazusetzen, damit die Schleife nach X sec. verlassen wird
do until ActiveWorkbook.name>Thisworkbook.name

doevents
loop

hth
Ulf
AW: Sharepoint Dateien per VBA drucken
28.09.2023 11:08:49
marie_excel
Super, danke für den Tipp!! :) ich hab´s mal wie folgt angepasst, leider druckt das Code noch immer nur das originäre Arbeitsblatt und nicht das hinter dem Sharepoint Link...

For i = 1 To 18

If CheckBoxes(i).Value = True Then
If HyperlinkAddresses(i) > "" Then
' Hyperlink öffnen
ThisWorkbook.FollowHyperlink Address:=HyperlinkAddresses(i)

' Warte, bis das Dokument vollständig geladen ist
DoEvents

' Aktive Arbeitsmappe speichern und drucken
Set openedWb = ActiveWorkbook
openedWb.Worksheets(1).PrintOut
openedWb.Close SaveChanges:=False
Else
MsgBox "Hyperlink-Adresse für CheckBox" & i & " nicht definiert.", vbExclamation, "Fehler"
End If
End If
Next i
Anzeige

Links zu Excel-Dialogen

Anzeige

Infobox zum Thema

EXCEL - Sharepoint Dateien per VBA drucken


Inhaltsverzeichnis


Die Fragestellung


Du möchtest Dateien, die auf einem SharePoint-Server gespeichert sind, direkt aus Excel heraus mit VBA drucken.


Erläuterung des Problems {#erläuterung-des-problems}


Das Drucken von Dateien auf einem SharePoint kann komplex sein, da es zunächst erforderlich ist, die Dateien für den Zugriff durch VBA verfügbar zu machen. Dies kann durch das Mappen des SharePoint-Pfades als Netzlaufwerk oder durch den Zugriff über eine URL erfolgen.


Lösung des Problems {#lösung-des-problems}


Um eine Datei von SharePoint zu drucken, kannst du den folgenden VBA-Code als Ausgangspunkt verwenden:

Sub SharePointDateiDrucken()
    Dim strDateiPfad As String
    Dim strDateiName As String
    Dim objWord As Object
    Dim objDokument As Object

    ' Pfad zum SharePoint-Ordner und Dateiname
    strDateiPfad = "\\DeinSharePointPfad\Ordner\"
    strDateiName = "DeineDatei.docx"

    ' Word-Instanz erstellen
    Set objWord = CreateObject("Word.Application")

    ' Dokument öffnen
    Set objDokument = objWord.Documents.Open(strDateiPfad & strDateiName)

    ' Drucken
    objDokument.PrintOut

    ' Dokument schließen ohne zu speichern
    objDokument.Close SaveChanges:=False

    ' Word beenden
    objWord.Quit

    ' Objekte aufräumen
    Set objDokument = Nothing
    Set objWord = Nothing
End Sub

Ersetze \\DeinSharePointPfad\Ordner\ mit dem vollständigen Pfad zu deinem SharePoint-Ordner und DeineDatei.docx mit dem Namen der zu druckenden Datei.


Anwendungsbeispiele aus der Praxis


  • Berichtswesen: Automatisches Drucken von Berichten, die auf SharePoint gespeichert sind, für Meetings.
  • Dokumentenmanagement: Drucken von Dokumenten für rechtliche Überprüfungen oder Archivierungszwecke.

Tipps


  • Stelle sicher, dass der SharePoint-Pfad korrekt ist und du die erforderlichen Berechtigungen zum Drucken der Datei hast.
  • Teste den Code zunächst mit einer Testdatei, um sicherzustellen, dass alles wie erwartet funktioniert.

Verwandte Themenbereiche


  • VBA und SharePoint-Integration
  • Automatisierung von Büroaufgaben
  • Dokumentenmanagement mit VBA

Zusammenfassung


Das Drucken von SharePoint-Dateien mit VBA erfordert das Öffnen der Dateien über einen korrekten Pfad und die Verwendung von Automatisierungsskripten, um die Dateien zu drucken. Der bereitgestellte Code ist ein Beispiel dafür, wie du ein Word-Dokument von einem SharePoint-Pfad drucken kannst. Dieses Skript kann angepasst werden, um andere Dateitypen oder Anwendungen zu unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige