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

Gefilterte Tabelle per PDF und variabler Name

Gefilterte Tabelle per PDF und variabler Name
15.09.2015 14:57:38
Thomas
Hallo liebe Forumsgemeinde,
wie es immer so ist. Man liest viel im Forum mit und findet oft Hilfe. Allerdings habe ich zu meinem Problem keine Lösung gefunden und daher wende ich mich heute persönlich an euch.
Problem:
Ich habe eine ziemlich große Datei welche sich nach verschiedenen Kriterien filtern lässt. Ich habe einen Code rausbekommen, welcher mir die aktuelle Ansicht als PDF ausdruckt.
Bennant werden soll die Datei u.a.nach dem Wert, der in Spalte C (nachdem ein Filter gesetzt wurde) steht. Zur Zeit ist es so, das eine feste Zeile den Namen der Tabelle vorgibt, was aber nicht gewünscht ist.
Hier mein aktueller Code:
Sub Drucke_Stellenplan()
Const DateiPfad = "irgendein Dateipfad/"
Dim DateiName As String
DateiName = DateiPfad & Range("c1073") & " Stellenplan " & Range("G1073") & ".pdf"   ' Org + _
_
aktuelles Datum
Range("c1:bh1072").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
DateiName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

Wie gesagt, die Datei wird immer nach den Werten in c1073 und g1073 benannt, soll aber nach C... und G... benannt werden, die nach dem Filtern ganz oben stehen.
Wenn jemand von euch hier eine Idee hätte würde mir das sehr weiterhelfen.
Vielen Dank und liebe Grüße,
Thomas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gefilterte Tabelle per PDF und variabler Name
15.09.2015 18:50:54
Nepumuk
Hallo,
teste mal:
Public Sub Drucke_Stellenplan()
    
    Const DateiPfad = "irgendein Dateipfad/"
    
    Dim DateiName As String
    Dim lngRow As Long
    
    With ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
        If .Areas(1).Rows.Count > 1 Then
            lngRow = .Areas(1).Cells(2, 1).Row
        Else
            lngRow = .Areas(2).Cells(1, 1).Row
        End If
    End With
    
    DateiName = DateiPfad & Cells(lngRow, 3).Text & _
        " Stellenplan " & Cells(lngRow, 7).Text & ".pdf" ' Org + aktuelles Datum
    
    Range("C1:BH1072").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        DateiName, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
    
End Sub

Gruß
Nepumuk

Anzeige
AW: Gefilterte Tabelle per PDF und variabler Name
16.09.2015 08:30:02
Thomas
Hallo Nepumuk,
vielen Dank für deine Antwort. Leider funktioniert es nicht ganz wie es soll. Denn der Ausdruck funktioniert nur, wenn der Autofilter so gesetzt ist, dass die Zeile C3 angezeigt wird. Wähle ich im Filter bspw die nächste Kategorie, so dass die Zeile C48 ganz oben steht kommt:
Laufzeitfehler 1004
Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet, oder beim speichern ist ein Fehler aufgetreten.
Schaue ich mir das ganze im Debuggen an ist der Bereich gelb markiert der den Druckbereich angibt, bzw das Druckformat bestimmt. HIer finde ich allerdings keinen Fehler..?

Anzeige
AW: Gefilterte Tabelle per PDF und variabler Name
16.09.2015 09:49:21
Thomas
Hallo nochmal,
ich habe es hinbekommen. Der Code sieht wie folgt aus:
Public Sub Drucke_Stellenplan()
Const DateiPfad = "irgendein Dateipfad"
Dim DateiName As String
Dim lngRow As Long
With ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then
lngRow = .Areas(1).Cells(2, 1).Row
Else
lngRow = .Areas(2).Cells(1, 1).Row
End If
End With
Debug.Print AF_KRIT
DateiName = DateiPfad & AF_KRIT & _
" Stellenplan " & ".pdf" ' Org + aktuelles Datum
Range("c1:bh1072").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
DateiName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub

Public Function AF_KRIT() As String
Dim intCol As Integer
Dim intFilter As Integer
Dim rngFilter As Range
Dim strFilter As String
Dim WS As Worksheet
Application.Volatile
Set WS = ActiveSheet
If WS.FilterMode And WS.AutoFilterMode Then
Set rngFilter = WS.AutoFilter.Range
For intCol = 1 To rngFilter.Columns.Count
With WS.AutoFilter.Filters(intCol)
If .On Then
If strFilter  "" Then strFilter = strFilter & vbLf
strFilter = strFilter & rngFilter.Cells(1, intCol) & ": " & .Criteria1
Select Case .Operator
Case xlAnd
strFilter = strFilter & " UND " & .Criteria2
Case xlOr
strFilter = strFilter & " ODER " & .Criteria2
End Select
End If
End With
Next intCol
End If
AF_KRIT = Right(strFilter, 3)
End Function
Nochmal danke für die Hilfe. Ohne die erste Antwort wäre ich nicht draufgekommen.
Gruß,
Thomas
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige