Clever-Excel-Forum

Normale Version: PDF erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo

am einfachsten suchst du in der Spalte wo -ein Datum steht- nach der letzten Zelle.
Probier bitte mal ob du mit dem Code dein Ergebnis erzielen kannst.  (Teilcode...)

Code:
If wsCurrent.Range("B4").Value = "Abrechnung Sonderleistungen" Then
      strDateiName = wsCurrent.Name & ".pdf"
      LastZelle = wsCurrent.Cells(Rows.Count, 2).End(xlUp).Row   '(2=Spalte B)
      wsCurrent.PageSetup.PrintArea = "$A$1:$K$" & LastZell
      Call wsCurrent.ExportAsFixedFormat( _

mfg Gast 123
erst mal Danke für deine Hilfe ... habe den Teilcode eingefügt, bekomme eine Fehler Angezeigt/ bzw LastZelle wird Markiert angezeigt :  LastZelle = wsCurrent.Cells(Rows.Count, 2).End(xlUp).Row  '(2=Spalte B)

Zur Info...
meine Formel in der Spalte "B" ist folgende.....     =WENN(D11<>"";WOCHENTAG(D11;1);"")  
also steht nur ein Wert bzw Wochentag wenn in der Spalte D was eingetragen wird/ist

Habe mal ein bisschen ausprobiert... Schau mal.. Jetzt funktioniert alles wie gewünscht ...  Vielen Lieben Dank an Gast123
du warst eine super Hilfe ....    23 23 23

Option Explicit

Public Sub CreatePDF()


Dim strDateiName    As String
Dim strDateiPfad    As String
Dim fDateinameTemp  As Variant
Dim wsCurrent        As Worksheet
Dim LastCell As String


strDateiPfad = ThisWorkbook.Path & Application.PathSeparator
fDateinameTemp = Split(ThisWorkbook.Name, ".")
fDateinameTemp(UBound(fDateinameTemp)) = "pdf"
strDateiName = Join(fDateinameTemp, ".")

Sheets("Schi").PageSetup.PrintArea = "$A$1:$K$20"


'Einzelne Blätter sichern
For Each wsCurrent In ThisWorkbook.Worksheets
  If wsCurrent.Range("B4").Value = "Abrechnung Sonderleistungen" Then
      strDateiName = wsCurrent.Name & ".pdf"
      LastCell = wsCurrent.Cells(Rows.Count, 4).End(xlUp).Row  '(2=Spalte B)
      wsCurrent.PageSetup.PrintArea = "$B$1:$K$" & LastCell
      Call wsCurrent.ExportAsFixedFormat( _
                                          Type:=xlTypePDF, _
                                          Filename:=strDateiPfad & Range("B4") & strDateiName, _
                                          Quality:=xlQualityStandard, _
                                          IncludeDocProperties:=True, _
                                          IgnorePrintAreas:=False, _
                                          OpenAfterPublish:=True)
  End If
Next
End Sub
Hallo

freut mich das es klappt, Prima.

mfg Gast 123
Dennoch ist der böse (Wink) Ralf der Meinung, dass man nicht für den Export als PDF "sinnlos" an der PrintArea herumbasteln sollte!
(nebenbei: bei Manipulation desselben sollte man vorher die .PrintCommunication temporär ausschalten)
Begründung:
Sollte "versehentlich" mal die (inzwischen erweiterte) Tabelle "ganz normal auf totem Baum" ausgedruckt werden, erfolgt der nächste Hilferuf, warum jetzt nicht mehr alles ausgedruckt wird, weil irgendwann der Druckbereich geändert wurde …

Folglich bleibt die Range.ExportAsFixedFormat sicherlich sinnvoller.
Code:
wsCurrent.Range("B1:K" & LastCell).ExportAsFixedFormat […]

26865

Eine Lösung muss doch nicht gut sein. „Iwie funzen“ genügt.
Seiten: 1 2 3