Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Autom. Verschiebung Inhalt: CSV -> XLS -> PDF (per VBA Makro?)
#1
Hallo Zusammen,

gewünscht ist ein automatisierter Transfer des Inhaltes einer CSV-Datei in eine vorgefertigte Excel-Datei mit anschließender Speicherung als PDF-Datei. Ich dachte eventuell an eine Umsetzung per VBA Makro, habe dahingehend aber keine Erfahrungen.

Kurze Übersicht zur Prozesskette:
  1. Rohdatei im CSV-Format
  2. Der Inhalt dieser CSV-Datei soll automatisiert in eine vorgefertigte Excel-Datei fließen
    (vorgefertigt = formatierte Überschriftenzeile bereits eingefügt; nach Einfügen der Daten aus CSV-Datei automatisierte Spalten-/Zeilenanpassung erwünscht (zunächst aber nur nice-to-have Attribut)
  3. Anschließende automatische Speicherung der Excel-Datei als PDF-Datei
    (Name gerne fortlaufend mit bspw. Datum und Uhrzeit)
Die grundlegende Frage lautet allerdings: Ist diese Prozesskette in automatisierter Form überhaupt möglich?

Über Ideen und Vorschläge wäre ich sehr dankbar! Smile

Gruß,
Marcel
Antworten Top
#2
Hallo,

es gibt mindestens 4 verschiedene Wege, wie man eine csv-Datei nach xl importieren kann. Je nach Datenformat, insbesondere bei Datumsformate gibt es regelmäßig/heufig Anpassungsbedarf.

Zusammengafasst: Im Prinzip ist der von dir vorgeschlagen Weg recht gut machbar, aber es gibt so viele "Fallstricke", dass ohne weitere Infos / Beispiele das kaum zu programmieren ist.

Auch FRagen, wo liegen die cvs (alle in einem Ordner?) sollten bekannt sein.

mfg
Antworten Top
#3
(10.06.2016, 09:34)gwspom schrieb: Ich dachte eventuell an eine Umsetzung per VBA Makro, habe dahingehend aber keine Erfahrungen.

Dann wäre die Beschäftigung eines Profis geeignet.
Antworten Top
#4
(10.06.2016, 10:50)Fennek schrieb: Hallo,

es gibt mindestens 4 verschiedene Wege, wie man eine csv-Datei nach xl importieren kann. Je nach Datenformat, insbesondere bei Datumsformate gibt es regelmäßig/heufig Anpassungsbedarf.

Zusammengafasst: Im Prinzip ist der von dir vorgeschlagen Weg recht gut machbar, aber es gibt so viele "Fallstricke", dass ohne weitere Infos / Beispiele das kaum zu programmieren ist.

Auch FRagen, wo liegen die cvs (alle in einem Ordner?) sollten bekannt sein.

mfg


Hallo Fennek,

vielen Dank für deine schnelle Antwort. Die Daten in der CSV-Datei sind relativ simpel gehalten: Kein besonderes Format wie bspw. Uhrzeiten o.Ä. (Format steht in allen Spalten auf "Standard"). Die Tabelle hat stets die gleiche Breite (15 Spalten). Die Datei würde als E-Mail Anhang kommen, allerdings könnte man zu Testzwecken bzw. für eine Vereinfachung auch von demselben Ordner ausgehen.

Danke & LG,
Marcel
Antworten Top
#5
Hallo,

es gibt Erfahrungen mit Fragesteller, die angeben wenig/kein Kenntnisse in vba zu haben. Gefühlt geht es in 60% der Fälle schief, wenn man einen vba-code liefert. Mal schauen, wie das bei dir ist.

Im Fenster sind zwei vba-Programme: das zweite habe ich mit dem Rekorder aufgezeichnet, das erste daraus abgeleitet.

Der Code wandelt alle csv in einem Ordner in pdf im selben Ordner um. Mögliche Probleme wie Datums-Formate werden nicht berücksichtigt.

Wenn die csv per email-Anhang kommen, wäre es auch möglich, sie direkt aus der Outlook-Inbox abzuholen, aber das kann ich nicht programmieren.

Gibt mal ein feedback, aber nicht einfach "Es geht nicht!", sondern mit aussagekräftige Infos. (kleine Anpassungen im Code musst du noch vornehmen, wenn du damit nicht klarkommmst ...)


Code:
Sub test()
sPath = "c:\temp\"

sFile = Dir(sPath & "T*.csv")

Do While Len(sFile)
Tx = Split(sFile, ".")(0)
   Workbooks.Open Filename:=sPath & sFile
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       sPath & Tx & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True _
       , IgnorePrintAreas:=False, OpenAfterPublish:=False
   ActiveWindow.Close
sFile = Dir
Loop

End Sub


Sub Makro1()
'
' Makro1 Makro per Rekorder aufgezeichnet
'

'
   Workbooks.Open Filename:="C:\Temp\Test2.csv"
   ChDir "C:\Temp"
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       "C:\Temp\Test2.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True _
       , IgnorePrintAreas:=False, OpenAfterPublish:=True
   ActiveWindow.Close
End Sub
Antworten Top
#6
Hallo Fennek,

vielen Dank für deine Antwort. Ich war bis gestern im Urlaub, daher meine späte Rückmeldung.

Kurz zur Vorgehensweise wie ich deinen VBA-Code eingefügt habe:
  • Rohdatei (CSV) geöffnet
  • Alt + F11 gedrückt -> Fenster Entwicklungsumgebung VBA öffnet sich
  • Projekt-Explorer geöffnet
  • Rohdatei markiert (blau hinterlegt)
  • Alt + E + M -> neues (leeres) Modul wird hinzugefügt
  • deinen Code (Erster, abgeleitet) eingefügt
  • gespeichert und Visual Basic mit Alt + F4 geschlossen
Wenn ich nun die modifizierte Datei öffne, passiert automatisiert (noch) nichts.
Gehe ich nun auf die Registerkarte "Entwicklertools" und klicke in der Gruppe "Code" auf "Makros" werden mir leider keine Makros angezeigt.

Woran kann das liegen? Was habe ich falsch gemacht?

Danke & LG,
Marcel
Antworten Top
#7
Hallo Marcel,

ich glaube nicht, dass das Makro in einer csv-Datei läuft. Kopiere das Makro in eine leere Excelmappe, speichere es mit der Endung xlsm bsz. xlsb ab und starte das Makro.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#8
Vielen Dank Steffl! Nun funktioniert es Smile
Es wird automatisch aus der CSV-Datei im Temp-Ordner eine PDF-Datei erstellt.

Nun würde ich gerne Schritt #2 meiner ursprünglichen Prozesskette hinzufügen:

Zitat:Kurze Übersicht zur Prozesskette:
  1. Rohdatei im CSV-Format
  2. Der Inhalt dieser CSV-Datei soll automatisiert in eine vorgefertigte Excel-Datei fließen
    (vorgefertigt = formatierte Überschriftenzeile bereits eingefügt; nach Einfügen der Daten aus CSV-Datei automatisierte Spalten-/Zeilenanpassung erwünscht

  3. Anschließende automatische Speicherung der Excel-Datei als PDF-Datei
    (Name gerne fortlaufend mit bspw. Datum und Uhrzeit)
Kann mir jemand hierzu einen VBA-Code basteln?
Danke & LG,
Marcel
Antworten Top
#9
Keiner eine Idee?! Sad
Antworten Top
#10
Hallo,

wenn der oben genannte Code funktioniert, dann steht der Inhalt der csv-Datei in einem Arbeitsblatt. Dies ist aber ein neues, leeres Blatt. Eine "Vorformatierung" kann es nicht geben.

D.h., alle Formatierungen bzw Überschriften müssen gesetzt bzw eingefügt werden.

mfg
Antworten Top


Gehe zu:


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