Clever-Excel-Forum

Normale Version: VBA Tabellenblätter markieren und eine PDF-Datei erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Ich brauche EURE Hilfe Blush

Ich habe eine Excel-Arbeitsmappe, welche mehrere Tabellenblätter (TB) hat. In jedem TB ist eine Tabelle dargestellt.

Ich möchte nun ein Button auf der ersten Seite (Hauptseite) einfügen, welcher die einzelnen Tabellen auf den einzelnen TB markiert und dann EINE einzige pdf-Datei erstellt.

Ich habe einen kleinen VBA-Code geschrieben, welcher die Tabelle auf einem TB markiert. Ich weiß aber nicht, wie ich es jetzt mit den anderen TB mache und wie ich es schaff dann das markierte in einer pdf datei darzustellen. Bitte Code einfügen:)

Sub Markieren()
For Zeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For Spalte = 1 To Cells(1, Columns.Count).End(xlUp).Column
If Cells(Zeile, Spalte) <> 0 Then Range(Cells(1, 1), Cells(Zeile, Spalte)).Select
Next Spalte
Next Zeile
End Sub

Ich möchte das gleiche mit den anderen TB machen und dann die markierten Bereiche in einer einzigen PDF-Datei abspeichern.



Ich hoffe, Ihr versteht mich. Danke schon mal.
Hallöchen,

Erst mal noch zu den Markierungen. Im Prinzip wiederholst Du den Code für die betroffenen Blätter:

Code:
Sub Markieren()
Sheets("Tabelle1").Select
For Zeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  For Spalte = 1 To Cells(1, Columns.Count).End(xlUp).Column
    If Cells(Zeile, Spalte) <> 0 Then Range(Cells(1, 1), Cells(Zeile, Spalte)).Select
  Next Spalte
Next Zeile
Sheets("Tabelle2").Select
For Zeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  For Spalte = 1 To Cells(1, Columns.Count).End(xlUp).Column
    If Cells(Zeile, Spalte) <> 0 Then Range(Cells(1, 1), Cells(Zeile, Spalte)).Select
  Next Spalte
Next Zeile
End Sub

Das kann man natürlich auch wieder mit einer Schleife vereinfachen, wenn man das auf allen machen will z.B.

For i=1 to Sheets.Count
Sheets(i).Select
...Zellen markieren
Next
Moin!
Ich habe es völlig anders verstanden, aber eine Datei könnte Licht ins Dunkle bringen.

Es werden ja in den einzelnen TBs ausschließlich die zu druckenden Zellen stehen.
Dann reicht eine Schleife über die Sheets und das Schreiben in ein Array, welches dann als PDF gedruckt wird.
Selektiert werden muss da gar nichts.

Grob nach diesem Muster:
Code:
Sub RPP()
Dim i&, arr() As String
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
   If wks.Name <> "Hauptseite" Then
       ReDim Preserve arr(i)
       arr(i) = wks.Name
       i = i + 1
   End If
Next
Worksheets(arr).Copy
ActiveWorkbook.ExportAsFixedFormat _
  xlTypePDF, Environ("UserProfile") & "\Desktop\MeineAuswahl", OpenAfterPublish:=True
ActiveWorkbook.Close False
End Sub

Gruß Ralf
Hallo Ralf,

die etwas ungewöhnliche Selektierroutine hat ja bestimmt einen Hintergund.
füge mal willkürlich ein paar unzusammenhängende Daten in zwei Blätter ein und schaue, was da markiert wird.

Tabellenblattname: Tabelle1
ABCD
112
234
3567


von schauan

Tabellenblattname: Tabelle2
AB
11
22
33
44
55
66
77


von schauan
Vielen Dank für die schnellen Antworten.  Anbei habe ich ein Excel-Beispieldatei eingefügt, damit ihr euch das besser vorstellen könnt.

Was möchte ich:
Ich möchte auf den einzelnen Tabellenblätter (TB: Daten, Kunde, Lieferant, Objekt...), die Daten markiert bekommen. Es sollen nur Datensätze markiert werden und nicht die Nuller. Die Nuller habe ich drin, da sich dahinter Formeln verbergen. Nach dem die Tabellen auf den einzelnen TB markiert wurden sind, sollen daraus EINE pdf-Datei erstellt werden und zwar per Button-Klick. Das ganze soll natürlich in einem Stück funktionieren d.d. ich klicke auf den Button "PDF-Erstellung" und dann wird mir eine PDF Datei erstellt mit allen TB. Cool wäre, wenn die pdf-Datei in einem bestimmten Ordner abgespeichert wird und mit einem bestimmten Namen.

Am besten wäre es für mich, wenn sie mir den VBA-Code einpflegen bzw. mir mitteilen. Ich habe nur ganz wenige Kentnisse bzgl. Excel VBA.


Vielen Danke für eure Mühe.
Moin!
Ich würde alle Tabellen filtern und 0 abwählen.
Zum Erzeugen EINER Pdf mit ALLEN Blättern außer einem Deckblatt habe ich oben bereits einen Code eingestellt.

Wenn jetzt alle Sheets als eine einzige PDF erstellt werden sollen, dann reicht folgender kurzer Code:
Code:
Sub RPP()
ActiveWorkbook.ExportAsFixedFormat _
 xlTypePDF, Environ("UserProfile") & "\Desktop\MeineAuswahl", OpenAfterPublish:=True
End Sub


Gruß Ralf