Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

PDF erstellen
#21
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
Antworten Top
#22
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
Antworten Top
#23
Hallo

freut mich das es klappt, Prima.

mfg Gast 123
Antworten Top
#24
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 […]
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#25
Eine Lösung muss doch nicht gut sein. „Iwie funzen“ genügt.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste