Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 109
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Tabellenkalkulation



Supportnet/Forum/Tabellenkalkulation
von Nebroht vom 16.02.2017, 10:41 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


Makro speichern als .pdf mit Filenamen aus Feld speichert unter falschem Namen

 (202 Hits)

Hallo Fachleute,

ich habe folgendes Problem:

Mein Makro funktioniert genauso, wie ich es brauche, bis auf die Tatsache, dass der Dateiname, den ich ebenfalls automazisch erstellen lasse. Der Inhalt des Dokumentes ist immer eine Nr. zurück zum Filenamen.
Beispiel:
Ich möchte eine Datei mit dem Namen: 4955-Text-201701-1400002.pdf erzeugen. 1400002 wird aus einer Reihe kopiert und löst die Erstellung eines Reports im 1.Tabellenblatt aus. Die Datei die dann erzeugt wird, hat jedoch den Namen: 4955-Text-201701-1400001.pdf mit dem Inhalt/ Report 1400002 an.

Wo habe ich meinen Fehler gemacht?

Hier der Makro:
Sub Macro2()
'
' Macro2 Macro
' copy customer-ID & pdf-safe
'

'
Dim i As Long
Dim fileName As String
Dim customerID As String
Dim lAnzahl As String
lAnzahl = InputBox("Wie oft soll das Makro laufen ?", , 3)

MsgBox "Erstellung Sell-Out-PDF Reports für 4903. Laufzeit: ca. 60 Minuten/ 1000 *.pdf"
For i = 1 To lAnzahl
Sheets("pdf-maker").Select
fileName = Range("F19")
'Range("B202").Select
customerID = Cells(i, 2)
'Application.CutCopyMode = False
'Selection.Copy
Sheets("Sell-Out Datei").Select
Range("F5") = customerID
'MsgBox fileName
speichern_unter (fileName)
Next i
End Sub


Sub speichern_unter(f As String)
'MsgBox f
'Sheets("Sell-Out Datei").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
ThisWorkbook.Path & "\" & f & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub



Herzlichen Dank


Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von M.O. vom 16.02.2017, 10:58 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

ohne die Datei zu kennen, ist es schwer den Fehler zu finden. Du ermittelst den Dateinamen ja aus der Zelle F19 im Blatt pdf-maker. Was steht da drin bzw. wie wird dort der Dateiname zusammengesetzt?

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 2 von nebroht vom 16.02.2017, 11:59 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

Der Dateame wird wie folgt zusammengebaut:
=(H14&G14&K14&J14&L14&I14)
wobei in
H14= 4903
G14=Sell-out
K14=2017
J14=01
L14= "-"
i14= 140000
i14 wird vom Tabellenblatt Sell-out-Datei kopiert
K & J14 sind Pagedown Listen


Antwort noch nicht bewertet
Antwort 3 von M.O. vom 16.02.2017, 12:07 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

und wie wird I14 kopiert? Per Makro? Denn hier ist ja wohl der Fehler mit dem falschen Dateinamen.

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 4 von nebroht vom 16.02.2017, 12:38 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

nein, das ist einfach ein Verweis auf den Zellnamen
='Sell-Out Datei'!F5 im Feld pdf-maker i14.

beim ausführen der Einzelschritte werden die Werte auch korregt übertragen.

Was ich aber gerade noch gesehen habe, beim ausführen wird im 1. Durchlauf eine pdf-Datei erzeugt die leer ist, sprich der Reprot Inhalt ist nicht vorhanden i14, enthält zu diesen Zeitpunkt, den letzten Wert, des letzten Laufes, gerade z.B. 14000094. Dann wird im 2. Durchlauf der Schleife eine Datei erzeugt inder i14 leer ist und diese enthält dann, den Report 14000001.

Ok es passiert folgendes:
das Feld auf dem Blatt Sell-out F5 enthält keinen Wert. Damit ist das Feld I14 auf dem Blatt pdf-maker 0
Der Makro läuft los und erzeugt zu allererst eine Datei mit dem 4903-SEll-out-201701-0.
Mit der 1. Schleifenwiederholung wird Sell-out F5 zu 14000001.
Blatt pdf-maker enthält dann in F14 den Wert 14000001, also so wie gewollt.
Aber die Erzeugte PDF-Datei heisst dann nur 4903-Sell-out-201701-
Mit dem nächsten Durchlauf, wird dann Sell-out F5 zu 14000002 und pdf-maker F14 zu 14000002 und der Dateiname dann 14000001.

grummel
wiso zieht er einmal nicht den Namen richtig an

Danke
nebroht


Antwort noch nicht bewertet
Antwort 5 von nebroht vom 16.02.2017, 12:57 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Habe noch etwas gefunden und da scheint die Ursache zu liegen, habe aber keine Lösung:


Sub speichern_unter(F As String)
'MsgBox f
'Sheets("Sell-Out Datei").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
ThisWorkbook.Path & "\" & F & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub


Nachdem ich gerade einfach einmal die Dateinamneserstellung nur noch auf die Übernahme des Zahlenwertes reduziert habe, hier 14000001, läuft der Makro im zweiten durchlauf auf einen Fehler. Es steht zwar der korrekte Wert im Feld, aber der wird nicht angezogen. Hat jemand eine Idee, wie ich es hinbekomme, das die Übernahme sofort erfolgt. Ein Wait Eintrag hat leider nichts gebracht.

Achja, und die Testläufe Anfang des Monats waren alle korregt. Es gab aber auch seitdem keine Änderung an der Excel Datei und auch nicht am Makro.


Antwort noch nicht bewertet
Antwort 6 von M.O. vom 16.02.2017, 13:57 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

wie sieht denn deine Spalte B im Blatt PDF-maker aus? Denn von hier aus kopierst du ja die Customer-IDs in Zelle F5 des Arbeitsblatts Sell-out-datei. Wenn die erste Zeile leer ist, wird dann natürlich im ersten Durchgang mit deinem Code auch keine Costumer-ID gezogen. Außerdem kopierst du die Costumer-ID erst nachdem du den Namen aus F19 gelesen hast.

Probier es mal so (ich habe die zwei Makros zusammengefasst):

Sub Macro2()
'
' Macro2 Macro
' copy customer-ID & pdf-safe

'

Dim i As Long
Dim fileName As String
Dim lAnzahl As String

lAnzahl = InputBox("Wie oft soll das Makro laufen ?", , 3)

MsgBox "Erstellung Sell-Out-PDF Reports für 4903. Laufzeit: ca. 60 Minuten/ 1000 *.pdf"

For i = 1 To lAnzahl
 With Worksheets("pdf-maker")
   Worksheets("Sell-Out Datei").Range("F5") = .Cells(i + 1, 2)
   fileName = .Range("F19")
 End With
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
  ThisWorkbook.Path & "\" & fileName & ".pdf", Quality:=xlQualityStandard, _
  IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    
Next i

End Sub


Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 7 von nebroht vom 16.02.2017, 15:40 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.

super Danke, das funktioniert. Genau wie es sein soll.

LG
nebroht


Antwort noch nicht bewertet




Hinweis
Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum.

MACHEN SIE IHRE WEBSITE ATTRAKTIVER
Sie haben eine eigene Website und wollen Ihre Besucher auf den Supportnet-Service aufmerksam machen? Kopieren Sie einfach den Quellcode in Ihre Seite und jeder Besucher Ihrer Seite kann direkt auf die Supportnet-Datenbank zugreifen.

My Supportnet


SUCHE

Gruppen im Forum
Betriebsysteme
Software
Hardware
Netzwerk
Programmierung
Sonstiges

Impressum © 1997-2015 SupportNet
Version: supportware 1.8.230E / 18.10.2010, Startzeit:Mon Aug 21 21:20:21 2017