2k Aufrufe
Gefragt in Windows 7 von
Ich erstelle in einem Tabellenblatt über VBA in einem Abschnitt von Zeile 201bis Zeile 231,Spalte K bis BD, eine Wegweiserdarstellung mit dazugehörigen Daten.
Von diesen Abschnitt generiere ich über VBA ein PDF zum Versand per E-Mail.
Das funktioniert tatellos, nur hätteich gerne, das bei der Selection zum Export automatisch, die Kennummer des Wegweisers von der Zelle L216 als PDF-Bezeichnung übernommen wird.

Am Schluß von meinem Makro steht:
...........
Application.PrintCommunication = True
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\x\Desktop\0.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
' ActiveWorkbook.Save

Das PDF wird immer am Desktop als 0.pdf abgespeichert, jedoch sollte bei 0(.pdf) der Inhalt der Zelle von L216 stehen .Das wäre zum Beispiel: 403-S009-W013(.pdf).
Wie bekomme ich im Makro automatisch diesen Zelleninhalt als PDF-Namen mit dazu.

Über eine Lösung würde ich mich freuen.

7 Antworten

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

versuch es mal so (ungetestet):

S
ub test()

Dim StrPDFName As String

StrPDFName = "C:\Users\x\Desktop\" & Range("L216").Value & ".pdf"

Application.PrintCommunication = True
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
StrPDFName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
' ActiveWorkbook.Save

End Sub


Den Pfad musst du natürlich noch entsprechend anpassen.

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

richtig sollte der Code so aussehen:

Sub test()

Dim StrPDFName As String

StrPDFName = "C:\Users\x\Desktop\" & Range("L216").Value & ".pdf"

Application.PrintCommunication = True
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
StrPDFName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
' ActiveWorkbook.Save

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.

herzlichen Dank für die Lösung, welche auf Anhieb einwandfrei funktioniert hat.
Das nächste Problem dazu ist, es sollte, da es verschiedene Ordsgruppen welche Wegweiser bestellen und einen PDF-Ordner im Archiv haben, auch da archiviert werden.
Alle Ortsgruppen haben eine Nummer, z.B. 401, 402, 403, 404, usw. Für die zu archivierenden PDF hat jede Ortsgruppe einen Ordner mit der Bezeichnung 401, 402, 403 u.s.w.
Diese Nummer steht in dem zu archivirenden Excel-Blatt-Teil in der Zelle L206.
Wie kann ich das anstellen, daß bei der erstellung des PDF auch gleich zum Abspeichern der richtige Ortsgruppenordner ausgesucht wird. Der Ordnerpfad ist F:\1Schilderverwaltung\403

Noch eine Schwierigkeit habe ich, ich wollte mich gestern noch registrieren. Das habe ich mehrmals unter verschiedenen Nicknamen versucht, aber niemals ein Passwort-Antwort bei web.de erhalten. Sollich es nochmals über meine T-online Addresse versuchen?
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

zur Zeit können sich keine neuen Mitglieder registrieren, da es hier einige Probleme mit dem Mailsystem gibt: Antwort 6.

Du kannst den Pfad beliebig zusammensetzen:

StrPDFName = "F:\1Schilderverwaltung\" & Range("L206").Value & "\" & Range("L216").Value & ".pdf"


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.

herzlichen Dank auch für die 2. Lösung.
Es ist alles so einfach und logisch - wenn man es weiß.

Hoffentlich löschen die Fachleute, wenn das System wieder in Ordnung ist bei mir sämtliche Anmeldungsversuche mit den ganzen Nicknamen sonst ist bei mir alles durcheinander.
Eine Nachricht, wenn alles wieder Funktioniert wäre schön!

Dem ganzen Supportnet muß ich ein Kompliment machen, das ist eine hervorragende Einrichtung.
Da werde ich mich sicher noch öffter melden.

Mit feundlichem Gruß und Danke!

Freind
0 Punkte
Beantwortet von
Hallo M.O.

Excel 2013, Win 7.
Ich stehe schon wieder vor einer Schwierigkeit, welche ich schon seit ein paar Tagen nicht zufriedenstellend zu lösen vermag.
Problem:
Ich möchte archivierte Schilder (jedes archivierte Schild =20 Zeilen hoch) nacheinander nach der Standort-Nummer zur Ansicht anzeigen. An einem Pfahl können mehrere Schilder befestigt sein und haben somit alle die gleiche Standortnummer. Diese Schilder sind aber im Archiv nicht nacheinander eingetragen.
Ich möchte einen Suchwert (z.B."026") eingeben und n u r in einer Spalte (N) suchen. Die Suche soll z.B. bei N56 beginnen bis N10000 gehen, in Schritten von 20 Zeilen, also N56-N76-N96-N116 usw. Beim finden des Wertes, da stehen bleiben, damit man den Eintrag des Wegweisers ansehen kann und MsgBox- Weitersuchen ja-nein. kommt man bei der Weitersuche auf eine Zelle ohne Inhalt weil keine weiteren Archivierungen mehr vorhanden sind, MsgBox-Keine weiteren Schilder mit dieser Standortnummer vorhanden, Beenden-ja -nein.
Bei ja beenden, bei nein Suche von vorne beginnen.

Meine bisherige sauberste Lösung, wechselt aber die Spalten!

Sub ArchivWegwStandortSuchen()
'======================================================
' Wegweiser im Archivblatt nach seinem Standort suchen
'======================================================
Dim strText As String
'
ActiveSheet.Unprotect
Range("N56").Select 'zelle für den Suchbeginn
strText = InputBox("Wegweiser-Standort-Nummer eingeben!!!", "Im Archiv suchen nach Standort")
If strText = "" Then Exit Sub
X:
ActiveSheet.Unprotect '("fgv")
'
On Error GoTo Demo
'
Cells.Find(What:=strText, After:=ActiveCell, _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:= _
xlByColumns, SearchDirection:=xlNext, MatchCase:=False). _
Activate
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
'
ActiveWindow.SmallScroll Down:=6 'geht noch 6 Zeilen nach unten, damit die ganze Archivierung zur Kontrolle zu sehen ist
' '
ewert = MsgBox("Weitersuchen ???", vbYesNo + vbDefaultButton2 + vbQuestion)
'
If ewert = vbNo Then Exit Sub
GoTo X:
Demo:
MsgBox ("Standort-Nummer im Archiv nicht vorhanden !!!")
'
Range("L1").Select' geht zum Blatt-Anfang
ActiveSheet.Protect
'
End Sub


Für eine saubere übersichtliche Lösung währe ich dankbar.

Freind

P.S.
Es ist schon ein Drama, dass man immer eine neuen Nicknamen vergeben muß, um in das System zu gelangen., oder mache ich da etwas falsch?
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Freind,

für die Frage solltest du einen neuen Thread aufmachen, da die Frage mit der ursprünglichen Frage ja gar nichts zu tun hat. Außerdem solltest du nicht einzelne Personen ansprechen, denn es gibt noch mehr Helfer, die dir helfen können.

Ich würde das nicht über die Suche machen, sondern mit einer Schleife:

Sub archivsuche()

Dim strText As String
Dim zeile As Long
Dim rueckgabe
Dim gefunden As Boolean

strText = InputBox("Wegweiser-Standort-Nummer eingeben!!!", "Im Archiv suchen nach Standort")

gefunden = False

If strText = "" Then
MsgBox "Keine Eingabe - Abbruch!", 16, "Fehler"
Exit Sub
End If

For zeile = 56 To 10000 Step 20

If ActiveSheet.Cells(zeile, 14).Value = strText Then
gefunden = True
ActiveSheet.Cells(zeile, 14).Select
ActiveWindow.SmallScroll Down:=6 'geht noch 6 Zeilen nach unten, damit die ganze Archivierung zur Kontrolle zu sehen ist

rueckgabe = MsgBox("Weitersuchen?", 292, "Frage")
If rueckgabe = vbNo Then Exit Sub
End If

Next zeile

If gefunden = False Then
MsgBox "Standort-Nummer im Archiv nicht vorhanden !!!", 48, "Hinweis"
ActiveSheet.Range("L1").Select
Else
MsgBox "Keine weiteren Standort-Nummern im Archiv gefunden !!!", 48, "Hinweis"
End If

End Sub

Ob du den Blattschutz aufheben musst, musst du entscheiden, die Suche funktioniert auch ohne Blattschutz.

Wie das mit dem Anmelden als Nichtmember ist, kann ich dir leider nicht sagen.

Gruß

M.O.
...