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

per Makro Tabellenblatt drucken

per Makro Tabellenblatt drucken
07.10.2017 19:05:06
Michael
Hallo zusammen,
könnte mir bitte jemand das nachfolgende Makro so umschreiben, dass immer beim Ausführen des Markos nicht das aktuelle Tabellenblatt in eine PDF ausgegeben wird, sondern z.B. das Tabellenblatt "Analyse NEU". Der entsprechende Button zwecks PDF Druck soll sich in einem anderen Tabellenbaltt befinden. Hintergrund ist ganz einfach, dass per MArko Daten aus einem Tabellenblatt "aktuelle Liste" an "Analyse Neu" gesendet werden. Dort werden die Basisdaten graphisch aufbereitet und größenteils per Diagramm ausgegeben. Da die Liste druckaus bis zu 500 Zeilen besitzen kann müsste ich jedensmal hin und her wechseln um zu drucken.
Die zweite knifflige Frage, für mich jedenfalls wäre, lässt sich das ganz den auch automatisieren ? Sprich, mit einen Button eine Prozedur ausführen die da quasi lautet:
Aktiviere CommandButton1 und im Anschluss PDF Druck
Aktiviere CommandButton2 und im Anschluss PDF Druck
usw....
Derzeit habe ich folgenden Code ( hier aus dem Forum )
Sub aktivesBlattToPdf()
ChDir "D:\Temp\" 'anpassen 'oder thisworkbook.path
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("G41").Value & Format(Date, "YYYYMMDD") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
VG
Michael

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per Makro Tabellenblatt drucken
07.10.2017 19:07:46
Hajo_Zi
Hallo Michael,
ersetze
ActiveSheet
durch
Worksheets("Analyse NEU")

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
AW: per Makro Tabellenblatt drucken
07.10.2017 19:27:31
Michael
Hallo Hajo,
erstmal Vielen Dank für dein Feedback ! Funktioniert auch alles soweit bis auf die Tatsache, dass der PDF Druck jetzt leider warum auch immer nicht mehr mit dem Namen der in G41 "Analyse Neu" steht beschriftet wird.....das wäre leider mehr als sinnvoll um später noch zu finden was man sucht :)
Hättest du da noch einen Tipp für mich ?
Sub Analysedrucken()
ChDir "D:\Temp\" 'anpassen 'oder thisworkbook.path
Worksheets("Analyse NEU").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("G41").Value & Format(Date, "YYYYMMDD") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
VG
Michael
Anzeige
AW: per Makro Tabellenblatt drucken
07.10.2017 19:29:52
Hajo_Zi
ja da muss auch die Tabelle vor (Range("G41")). Das Stand nicht im ersten Beitrag.
Gruß Hajo
AW: per Makro Tabellenblatt drucken
07.10.2017 19:36:21
Michael
SORRY, editierst du mir bitte mal das Marko damit es passt. Mir ist jetzt klar das diese Anweisung fehlt, aber selbst diese Kleinigkeit bekomme ich nicht umgesetzt :(
VG
AW: per Makro Tabellenblatt drucken
08.10.2017 06:02:07
Hajo_Zi
Dann solltest Du Excel nicht benutzen, wenn Du nicht kopieren kannst.
Meinen Vorschlag davor kopieren und einen Punkt machen hätte ich nicht als schwierig angesehen.
Gruß Hajo
Anzeige
Sorry, falscher Code!
07.10.2017 19:32:48
Sepp
Hallo Michael,
weil sich Range("G41") nicht auf das richtige Blatt bezieht.
Sub Analysedrucken()

ChDir "D:\Temp\" 'anpassen 'oder thisworkbook.path
With Worksheets("Analyse NEU")
  .ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=.Range("G41").Value & Format(Date, "YYYYMMDD") & ".pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
End With
End Sub

Gruß Sepp

Anzeige
Sorry, mein Browser ist Schizophren! o.T.
07.10.2017 19:34:23
Sepp
Gruß Sepp

AW: Sorry, mein Browser ist Schizophren! o.T.
07.10.2017 19:40:16
Michael
Danke ! genau so
VG
AW: Sorry, mein Browser ist Schizophren! o.T.
07.10.2017 19:42:12
Michael
Habt ihr auch noch rat, wie ich das Ganze automatisieren kann ? Bitte dazu nochmal im Ursprungseintrag nachschauen ?
VG
PDF drucken
07.10.2017 19:45:23
Sepp
Hallo Michael,
beschreibe doch etwas genauer, was geschehen soll.
Gruß Sepp

AW: PDF drucken
07.10.2017 20:13:21
Michael
Hallo Sepp,
versuche ich gerne.
Im Tabellenblatt "aktuelle Liste" stehen Basisdaten die per Makro ( CommandButton 1 - CommandButton210 ) an das Tabellenblatt "Analyse Neu" gesandt werden. Sprich, jede Zeile in "aktuelle Liste" hat einen Button um die Werte zu übergeben. Im Anschluss würde ich das von dir und Hajo korrigierte MArko verwenden um einen PDF Druck zu erzeugen. In der jetzigen Situation müsste der Anwender der Datei je Zeile 2 Buttons klicken um für eine Zeile einen PDF Druck zu erhalten. Das darf auch gerne so sein um eine gezielte Auswahl zu ermöglichen. Durchaus könnte es aber sein das sich jemand sagt, erstelle mir von allen EInträgen je eine PDF Datei. Derzeit hat meine Liste 210 Zeilen die jeweils in eine PDF Datei gegeben werden könnte. In Summe müsste man also um je Zeile eine PDF zu bekommen 420 mal klicken um die derzeit vorhandnen Zeilen in je eine PDF zu bekommen.
Ich beschreibe es mal laienhaft in meinen Worten was Excel machen sollte:
1. Klick CommandButton1
2. Auführen PDF Druck
3. Klick CommandButton2
4. Auführen PDF Druck1
5. Klick CommandButton3
6. Auführen PDF Druck
usw.....
ICh hoffe es war so verständlich .....so etwas lässt sich ja leider nicht aufzeichen. Der Anfang würde mir logischerweise genügen ....
VG
Michael
Anzeige
AW: PDF drucken
07.10.2017 20:16:26
Sepp
Hallo Michael,
wenn man jetzt noch wüste, was die Einzelnen Makros genau machen, bzw. welche Werte sie jeweils übergeben, dann könnte man das ganze in einer Schleife abarbeiten.
Gruß Sepp

AW: PDF drucken
07.10.2017 20:22:32
Michael
Hallo Sepp,
zum Daten übergeben verwende ich folgende Code´s ( mit Rekorder ausgezeichnet )
Private Sub CommandButton21_Click()
Rows("5:5").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton210_Click()
Rows("14:14").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton211_Click()
Rows("15:15").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton212_Click()
Rows("16:16").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton213_Click()
Rows("17:17").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton214_Click()
Rows("18:18").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton215_Click()
Rows("19:19").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton216_Click()
Rows("20:20").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton217_Click()
Rows("21:21").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton218_Click()
Rows("22:22").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton219_Click()
Rows("23:23").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton22_Click()
Rows("6:6").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton220_Click()
Rows("24:24").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton221_Click()
Rows("25:25").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton222_Click()
Rows("26:26").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton223_Click()
Rows("27:27").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton224_Click()
Rows("28:28").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton225_Click()
Rows("29:29").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton226_Click()
Rows("30:30").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton227_Click()
Rows("31:31").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton228_Click()
Rows("32:32").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton229_Click()
Rows("33:33").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton23_Click()
Rows("7:7").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton230_Click()
Rows("34:34").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton231_Click()
Rows("35:35").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton232_Click()
Rows("36:36").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton233_Click()
Rows("37:37").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton234_Click()
Rows("38:38").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton235_Click()
Rows("39:39").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton236_Click()
Sheets("Analyse NEU").Select
End Sub

Private Sub CommandButton24_Click()
Rows("8:8").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton25_Click()
Rows("9:9").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton26_Click()
Rows("10:10").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton27_Click()
Rows("11:11").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton28_Click()
Rows("12:12").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Private Sub CommandButton29_Click()
Rows("13:13").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Die Zeile 1 spiegelt dann die Daten die ich genötige nach "Analyse NEU"....
VG
Michael
Anzeige
AW: PDF drucken
07.10.2017 20:26:34
Sepp
Hallo Michael,
du kopierst also die gesamte Zeile und fügst sie in die erste Zeile ein.
Du kopierst aber von einem Blatt zum anderen oder?
Wie heißt das Quell-Blatt und wie das Ziel-Blatt?
Wird wirklich nur eine Zeile kopiert und in Zeile 1 eingefügt?
Ergibt sich dann der Dateiname in G41 aus einer Formel?
Gruß Sepp

AW: PDF drucken
07.10.2017 20:33:26
Michael
Hallo Sepp,
nein, kopiert wird im gleichen Blatt "aktuelle Liste" es soll nicht anders geschehen wie z.B. Zeile 27 nach eben Zeile 1 zu kopieren. Das Ausgangsblatt heisst "aktuelle Liste". Das Zielblatt heisst "Analyse NEU". Im Blatt Analyse sind die Zellen lediglich mit einem Verweis auf "aktuelle Liste" befüllt. Also z.B wegen dem Dateinamen ( Zellinhalt "Analyse NEU" Zelle G41 ='aktuelle Liste'!A4.
VG
Michael
Anzeige
AW: PDF drucken
07.10.2017 20:38:27
Sepp
Hallo Michael,
ich gehe davon aus, dass sie Daten in Zeile 5 beginnen und dass man das Ende der Liste in Spalte A ermitteln kann.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub printAll()
Dim lngIndex As Long, objSource As Worksheet, objPrint As Worksheet

On Error GoTo ErrorHandler

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .DisplayAlerts = False
End With

ChDir "D:\Temp\" 'anpassen 'oder thisworkbook.path

Set objSource = Sheets("aktuelle Liste")
Set objPrint = Sheets("Analyse NEU")

With objSource
  For lngIndex = 5 To Application.Max(5, .Cells(.Rows.Count, 1).End(xlUp).Row)
    .Rows(lngIndex).Copy .Range("A1")
    objPrint.ExportAsFixedFormat Type:=xlTypePDF, _
      Filename:=objPrint.Range("G41").Value & Format(Date, "YYYYMMDD") & ".pdf", _
      Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, _
      OpenAfterPublish:=False
    Sleep 250
  Next
End With

ErrorHandler:

If Err.Number <> 0 Then
  MsgBox "Fehler in Modul1" & vbLf & vbLf & "Prozedur:" & vbTab & "printAll" & vbLf & _
    "Nummer:" & vbTab & Err.Number & vbLf & "Meldung:" & vbTab & Err.Description & vbLf & _
    IIf(Erl, "Zeile:" & vbTab & Erl, ""), vbExclamation, "Fehler!"
  Err.Clear
End If

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .DisplayAlerts = True
End With

Set objSource = Nothing
Set objPrint = Nothing
End Sub

Gruß Sepp

Anzeige
AW: PDF drucken
07.10.2017 20:46:33
Michael
Hallo Sepp,
leider erscheint folgende Fehlermeldung:
Fehler in Modul1
Prozedur: printall
Nummer:13
Meldung: Typen unverstäglich
Nach dem ich das Makkro ausführe wird in der Zeile 1 nun Bezug! eingeblendet ....
VG
Michael
AW: PDF drucken
07.10.2017 20:49:20
Sepp
Hallo Michael,
kannst du eine Beispieldatei hochladen, das wird sonst zum Ratespiel.
Gruß Sepp

AW: PDF drucken
07.10.2017 21:15:14
Michael
Schau mal hier
https://www.herber.de/bbs/user/116795.xlsm
Musste aber alle Datei raus nehmen. Die kann ich hier nicht öffentlich rein stellen ....
VG
Anzeige
AW: PDF drucken
07.10.2017 21:16:55
Michael
Hallo Sepp,
schau mal hier:
https://www.herber.de/bbs/user/116795.xlsm
Musste leider alle Daten raus nehmen, die kann ich hier nicht öffentlich rein stellen.
VG
Michael
nutzlos!
07.10.2017 21:21:03
Sepp
Hallo Micheal,
eine Datei voll von Bezugsfehlern ist ziemlich nutzlos!
Kannst du nicht deine Datei auf ein paar Zeilen reduzieren und mit Dummy-Daten füllen?
Gruß Sepp

AW: nutzlos!
07.10.2017 21:22:37
Michael
moment bitte kurz, ich kann ja nur 300kb hoch laden.....
Anzeige
AW: nutzlos!
07.10.2017 22:13:33
Sepp
Hallo Michael,
so sollte es laufen.
' **********************************************************************
' Modul: Modul5 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub printAll()
Dim lngIndex As Long, objSource As Worksheet, objPrint As Worksheet

On Error GoTo ErrorHandler

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .DisplayAlerts = False
End With

ChDir "D:\Temp\" 'anpassen 'oder thisworkbook.path

Set objSource = Sheets("aktuelle Liste")
Set objPrint = Sheets("Analyse NEU")

With objSource
  For lngIndex = 5 To Application.Max(5, .Cells(.Rows.Count, 2).End(xlUp).Row)
    .Rows(1) = .Rows(lngIndex).Value
    objPrint.ExportAsFixedFormat Type:=xlTypePDF, _
      Filename:=objPrint.Range("G41").Value & Format(Date, "YYYYMMDD") & ".pdf", _
      Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, _
      OpenAfterPublish:=False
    Sleep 250
  Next
End With

ErrorHandler:

If Err.Number <> 0 Then
  MsgBox "Fehler in Modul1" & vbLf & vbLf & "Prozedur:" & vbTab & "printAll" & vbLf & _
    "Nummer:" & vbTab & Err.Number & vbLf & "Meldung:" & vbTab & Err.Description & vbLf & _
    IIf(Erl, "Zeile:" & vbTab & Erl, ""), vbExclamation, "Fehler!"
  Err.Clear
End If

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .DisplayAlerts = True
End With

Set objSource = Nothing
Set objPrint = Nothing
End Sub

Gruß Sepp

AW: nutzlos!
07.10.2017 22:17:42
Michael
ABSOLUT PERFEKT ! Vielen Dank Sepp !!!
VG
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige