Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1520to1524
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
VBA Druck per Checkbox anfällig
03.11.2016 22:46:37
silex1
Hallo,
in der Bsp.-Datei gibt es ein Druckmakro (Ursprung von fcs), was aus den einzelnen Blättern ne pdf macht. Per "Kontrollkästchen" werden die zu druckenden Blätter markiert. Leider ist dies Makro "etwas" anfällig, was sich mir nicht erschliessen will.
Ein Fehler kam in
varFilename = Left(varFilename, InStrRev(varFilename, ".") - 1)

(gesamte Zeile markiert)
ein nächster war dann in
varFilename = varFilename & " " & Format(Now, "YYYY-MM-DD hhmmss") & ".pdf"

(Format markiert; "Objekt nicht gefunden...")
und heute kam
MsgBox "Es wurden keine Blätter für die PDF-Ausgabe gewählt."

obwohl Blatt1 ausgewählt war. Es war somit alles um eine Zeile versetzt.
Warum dies so war/ist, ist nicht nachvollziehbar und auch nicht reproduzierbar. Die Fehler treten "einfach" auf. Liegt wohl an MS selber, da es versionsunabhängig auftritt.
Könnte mir jemand bitte das Makro so umbauen, dass es nicht per Kontrollkästchen funktioniert, sondern bei einem "x" in Spalte F?
Bei Fragen, bitte fragen!
Mit dankbaren Grüßen
René
https://www.herber.de/bbs/user/109185.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Druck per Checkbox anfällig
04.11.2016 00:10:57
fcs
Hallo René,
es ist schleierhaft, warum es mit den Checkboxen Probleme geben sollte. Bei mir hat die Datei unter Excel 2010 problemlos funktioniert.
Es ist nicht auszuschließen, dass es Probleme gibt, wenn die Datei in unterschiedlchen Excel-Welten bearbeitet wird. Insbesondere Wechsel zwischen Excel 2003 und alter und Excel 2007 und neuer können dazu führen, das die VBA-Komponenten nicht mehr richtig gefunden/geöffnet werden.
Meistens funktioniert es wieder, wenn man im VBA-Editor die Verweise neu setzt.
Alternativ kann man auch vor den VBA-Befehlen/ethoden ein VBA. einfügen. z.B.
varFilename = VBA.Left(varFilename, VBA.InStrRev(varFilename, ".") - 1)

Dann werden die Makros etwas robuster.
wenn du die "x" in SPalte E hinter den Blattnamen einträgst, muss das Makro etwa wie folgt aussehen.
Gruß
Franz
Sub prcMakePDF()
Dim wksControl As Worksheet
Dim arrSheets() As String, intS As Integer
Dim rngX As Range
Dim varFilename
'Tabellenblatt mit Checkboxen und Schalfläche setzen
Set wksControl = ActiveWorkbook.Sheets(1)
'Prüfen welche Checkboxen gesetzt sind zugehörige Blattnamen in Array sammeln
For Each rngX In wksControl.Range("E33:E44").Cells
If LCase(rngX.Text) = "x" Then
intS = intS + 1
ReDim Preserve arrSheets(1 To intS)
'Zellinhalt in Zelle links von Zelle mit "x" als Tabellennamen einlesen
arrSheets(intS) = rngX.Offset(0, -3).Text
End If
Next rngX
If intS = 0 Then
MsgBox "Es wurden keine Blätter für die PDF-Ausgabe gewählt."
Else
varFilename = ActiveWorkbook.Name
varFilename = Left(varFilename, InStrRev(varFilename, ".") - 1)
varFilename = varFilename & " " & Format(Now, "YYYY-MM-DD hhmmss") & ".pdf"
varFilename = ActiveWorkbook.Path & "\" & varFilename
varFilename = Application.GetSaveAsFilename(InitialFileName:=varFilename, _
Filefilter:="PDF-Dateien (*.pdf),*.pdf)", _
Title:="Speichern unter - Bitte Namen der PDF-Datei eingeben/auswählen", _
ButtonText:="Speichern unter")
If Not varFilename = False Then
Application.ScreenUpdating = False
ActiveWorkbook.Sheets(arrSheets).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=varFilename, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
wksControl.Select
Application.ScreenUpdating = True
End If
End Sub

Anzeige
AW: VBA Druck per Checkbox anfällig
04.11.2016 08:44:42
silex1
Hallo Franz,
vielen Dank für Deine Hilfe und Tipps. In der ersten Datei wo ich Dein Makro verwendet habe, die läuft bestens. In der neuen nun gab es die Themen.
Excel 2007 und neuer können dazu führen, das die VBA-Komponenten nicht mehr richtig gefunden/geöffnet werden.

Dies könnte eine mögliche Ursache gewesen sein. Hab mit 2 Rechner die Datei erstellt, mit 2007 und 2010. Da werde ich in Zukunft besser hinschauen. ;-)
Könntest Du mir (da ich Deinen originalen Beitrag nicht mehr finde bei herber) nochmals mitteilen, welche Verweise gesetzt sein müssen. Würde mir dies dann direkt im Makro mit notieren.
Vielen Dank nochmals für die tolle Hilfe.
VG René
Anzeige
AW: VBA Druck per Checkbox anfällig
06.11.2016 04:55:36
fcs
Halle René,
in der folgenden Grafik sind die unter Excel 365 (Excel 2016) für die Datei erforderlichen aktiven Verweise markiert.
Userbild
Bei einigen Excel-VBA-Anwendungen ist auch noch der Verweis auf "Microsoft Visual basic for Applications Extensibility x.x" erforderlich.
Ansonsten musst du auch darauf achten das im Blatt "1.Stamdaten" die Namen der Blatter mit den Namen der Blätter auf den Registern übereinstimmen. In deiner Beispieldatei stimmen sie für "6.Anmeldung" (Tabellenregister) bzw. "6.Anmeldung_SF" in "1.Stamdaten" nicht überein. Sonst gibt es im Makro Indexfehler.
Gruß
Franz
Anzeige
AW: VBA Druck per Checkbox anfällig
06.11.2016 21:34:29
silex1
Hallo Franz,
vielen lieben Dank für die Verweise und Deiner Hilfe. Verweise hab ich in Deinem Makro nun notiert und kann sie nicht mehr vergessen! ;-)
Und dass mit den Blattnamen war beim Erstellen fürs Forum passiert, da ich die Originaldatei posten wollte und so ich dies übersehen hatte. Die Meldung mit dem Index ist mit bekannt...mehrfach schon reingetappst...*lol*
Vielen Dank nochmals für die kompetente Hilfe und nun werd ich auf einige Schritte besser Acht gegeben.
VG René

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige