Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1820to1824
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

Makro einfügen

Makro einfügen
31.03.2021 10:06:42
Timo
Hallo an Alle!
Ich habe hier aus dem Forum folgenden Code
Sub AlleDrucken()
Dim iCounter As Integer
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
With Application.FileSearch
.LookIn = "O:\Formulare\Protokolle"
.SearchSubFolders = True
.FileType = msoFileTypeExcelWorkbooks
.Execute
For iCounter = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(iCounter), False
ActiveWorkbook.PrintOut
ActiveWorkbook.Close savechanges:=False
Next iCounter
End With
ERRORHANDLER:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Ich wollte mir eine neue Arbeitsmappe erstellen, dort einen Button einfügen und diesem Button dieses Makro zuweisen.
Wenn ich das richtig verstehe kann ich dann aus dem von mir gewählten Ordner alle Excel Dateien drucken.
Ich habe das jetzt schon ein paar mal probiert aber da ich mit meinen VBA Kenntnissen noch ganz ganz ganz am Anfang bin weiß nicht genau wo ich das Makro einfügen soll, auf jedenfall klappt es bei mir nicht :-)
Würde mich über eine kleine Anleitung freuen.
Gruß
Timo

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro einfügen
31.03.2021 10:56:55
Timo
Danke für die schnelle Antwort und den Link.
Ich kenne die Seite und lese mich da immer wieder mal schlau aber es klappt dieses mal leider nicht so ganz.
Ich hab mein bisheriges Ergebnis mal Hochgeladen, vielleicht sieht ja einer gleich meinen Fehler.
https://www.herber.de/bbs/user/145221.xlsme

AW: Makro einfügen
31.03.2021 12:33:43
Werner
Hallo,
mach mal deine Hozhammerfehlerbehandlung raus On Error goto ... löschen.
Dann klickst du noch mal deinen Button.
voila
Application.Filesearch gibt es seit Excel 2007 nicht mehr.
Gruß Werner

Anzeige
AW: Makro einfügen
31.03.2021 14:29:56
oraculix
Das Makro sollte in ein Modul rein sonst findet der Butten mit der rechten Maus das Makro nicht.
Entwicklermodus starten, einfügen Modul.

AW: Makro einfügen
31.03.2021 16:37:19
Timo
Hallo,
nach langen suchen nach einer Alternative für Application.Filesearch hab ich einen anderen Code gefunden, der Funktioniert auch Super.
Sub AlleDruckenAnders()
Dim Ordner() As String, strDatNam As String
Dim i As Integer
'Stammverzeichnis:
Const strPfad As String = "C:\Users\sommer_t\Desktop\PQ Versuch"
'Alle Verzeichnisse in's Array:
Ordner = AlleUnterordner(strPfad)
'Schleife über alle Ordner
For i = 0 To UBound(Ordner)
'Schleife über alle Dateien:
strDatNam = Dir(Ordner(i) & "\*.xls*")
Do While strDatNam  ""
'Datei öffnen, drucken, schließen:
Workbooks.Open Ordner(i) & "\" & strDatNam, False
ActiveWorkbook.PrintOut
ActiveWorkbook.Close savechanges:=False
'nächster Dateiname
strDatNam = Dir()
Loop
Next
End Sub
Public Function AlleUnterordner(ByVal strPfad As String, Optional mitStammordner As Boolean =  _
True)
Dim StrTmp As String
If mitStammordner Then
StrTmp = strPfad & ","
End If
SubAlleUnterordner strPfad, StrTmp
AlleUnterordner = Split(Left(StrTmp, Len(StrTmp) - 1), ",")
End Function
Private Sub SubAlleUnterordner(ByVal strPfad As String, ByRef strAlle As String)
Dim fso As Object
Dim Ordner
Dim Unterordner
Set fso = CreateObject("Scripting.FileSystemObject")
Set Ordner = fso.getfolder(strPfad)
On Error Resume Next
For Each Unterordner In Ordner.subfolders
strAlle = strAlle & Unterordner.Path & ","
SubAlleUnterordner Unterordner.Path, strAlle
Next
Set fso = Nothing
Set Ordner = Nothing
End Sub
Ich würde nur gerne den Pfad nicht direkt in den Code eingeben Sondern gerne auf dem Tabellenblatt in Zelle B1 eingeben, könnte mir da einer helfen bei den Änderungen?

Anzeige
AW: Makro einfügen
31.03.2021 17:39:09
Werner
Hallo,
hier ein anderer Code. Ist von Piet, hier aus dem Forum, ein wenig angepasst an deine Bedürfnisse. Ist etwas kürzer als deiner und gefällt mit besser.
Statt PrintPreview mußt du halt PrintOut einsetzen. Den Blattnamen mit dem Pfad mußt du ggf. anpassen.
  • 
    Sub AlleDrucken()
    Dim strDir As String, objFSO As Object, objDir As Object
    Set objFSO = CreateObject("scripting.filesystemobject")
    strDir = ThisWorkbook.Worksheets("Tabelle1").Range("B1")
    Set objDir = objFSO.GetFolder(strDir)
    Dateienausgeben objDir
    Set objDir = Nothing: Set objFSO = Nothing
    End Sub
    

    Sub Dateienausgeben(ByVal Ordner As Object)
    Dim DatOrd As Variant, Datei As Object
    For Each Datei In Ordner.Files
    If Right(Datei.Name, 4) Like "xls*" Then
    Workbooks.Open Ordner & "\" & Datei.Name, False
    ActiveWorkbook.PrintPreview
    ActiveWorkbook.Close False
    End If
    Next
    For Each DatOrd In Ordner.SubFolders
    For Each Datei In DatOrd.Files
    If Right(Datei.Name, 4) Like "xls*" Then
    Workbooks.Open DatOrd & "\" & Datei.Name, False
    ActiveWorkbook.PrintPreview
    ActiveWorkbook.Close False
    End If
    Next
    Next
    End Sub
    

  • Gruß Werner

    Anzeige
    AW: Makro einfügen
    01.04.2021 14:08:27
    Timo
    Hallo,
    ich danke euch für die Hilfe, aber meine VBA Kenntnisse sind einfach zu bescheiden, ich bekomme den Code nicht richtig zum laufen.
    Der eine Code funktioniert ja, dann ändere ich den Pfad halt immer im Code ab.
    Vielen Dank.

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige