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

PDF oder Speichernamen auslesen

PDF oder Speichernamen auslesen
04.12.2017 10:36:33
Hans
Hallo Forum,
ich möchte gerne eine Tabelle erstellen die entweder PDF Dateien oder dessen Speichernamen ausliest. Je nachdem was einfacher ist. Alle Dateien sind in dem gleichen Ordner untergebracht.
Dabei ist der Speichername so abgelegt:
475 - 04.12.2017 - Firma - Hansen Schildertechnik GmbH - Autokennzeichen - Mühlenstraße 15 - 12345 Zuhause - St. Nr. DE03882837165 - 197,80 €
Kundennummer-Datum-Anrede-Firmenname-Firmenzusatz-Straße & Hausnummer-PLZ und Ort-Steuernummer-Betrag.
Die Tabelle sollte so aufgebaut werden, ein Datum eingeben kann und Excel die entsprechenden Daten dann in eine Tabelle einträgt. (ausdrucken und fertig)
Ich möchte einfach nur eine Tagesübersicht über die Umsätze erstellen...
Ich hoffe, dass ich mich verständlich genug ausgedrückt habe.
Ach so.... Die Rechnungen sind immer in C:\Recycling\Rechnungen
Danke für eure Vorschläge
Hans

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
soweit hab ich es schon.... aber....ZUSATZ
04.12.2017 10:55:30
Hans
Hallo Forum,
ich habe ein Makro gefunden, dass mir alle Dateien ausliest, (nicht nach Datum) und in meine Tabelle einträgt.
Mein Problem ist nun, dass der gesamte Name in die Erste Spalte eingetragen wird also nicht wie gewünscht "Kundennummer" A1 - "Datum" B1 - "Anrede" C1 usw.
Es wäre schön, wenn ich z.B. in Zelle A1 ein Datum eingeben könnte (oder über eine Userform) und dann die entsprechenden Daten eingelesen werden. Beginnend etwa ab Spalte 10 damit ich darüber noch etwas Platz für Eintragungen habe.
Vielen Dank
Hans
Mein (angepasstes Makro)
Sub dateinameneinlesen1()
Dim strPfad As String, strDatnam As String
Dim rngEinfüg As Range
Dim ACon As Object
Dim strTemp As String
'Erst der Pfad
strPfad = "C:\Recycling\Rechnungen\"
strDatnam = Dir(strPfad & "*.pdf")
Set ACon = CreateObject("ADODB.Stream")
Do While Len(strDatnam)
'Einfügezelle festlegen
Set rngEinfüg = IIf(IsEmpty([A1]), [A1], Cells(Rows.Count, 1).End(xlUp).Offset(1, 0))
rngEinfüg.Offset(, 0) = strTemp
'Dateiname eintragen:
rngEinfüg.Offset(, 0) = strDatnam
strDatnam = Dir
Loop
Set rngEinfüg = Nothing
Set ACon = Nothing
End Sub

Anzeige
Noch offen
04.12.2017 11:45:28
Hans
und wieder den Haken vergessen....
AW: Noch offen
04.12.2017 14:13:19
Robert
Hallo Hans,
versuche es mal hiermit
Sub dateinameneinlesen1()
Dim strPfad As String, strDatnam As String
Dim neueZeile As Long, strTemp, i As Integer
'Erst der Pfad
strPfad = "C:\Recycling\Rechnungen\"
strDatnam = Dir(strPfad & "*.pdf")
'ersteZeile für das Ergebnis
neueZeile = 10
'alte Daten löschen
Rows(neueZeile).CurrentRegion.Rows.Delete Shift:=xlUp
Do While Len(strDatnam)
'Dateinamen aufteilen, Trennzeichen ist " - "
strTemp = Split(strDatnam, " - ")
'Prüfen ob Datei mit angegebenen Datum übereinstimmt
If strTemp(1) = Format(Range("A1"), "dd.mm.yyyy") Then
'Daten eintragen:
For i = 0 To UBound(strTemp)
Cells(neueZeile, i + 1) = strTemp(i)
Next
neueZeile = neueZeile + 1
End If
strDatnam = Dir
Loop
End Sub
Das Makro liest die Dateinamen ein, löscht eventuell vorhandene Einträge ab der Zeile 10 und fügt dort die mit dem in A1 eingegebenem Datum übereinstimmenden Dateinamen, aufgeteilt auf mehreren Spalten wieder aus.
Gruß
Robert
Anzeige
Noch nicht ganz aber faßt....
04.12.2017 14:40:05
Hans
Hallo Robert,
fast das was ich wollte... Problem; es wird die Dateiendung PDF mit ausgelesen, ich brauche nur den Eurobetrag.
Kann man am dann am Ende der Tabelle automatisch den Eurobetrag einfügen, ohne dass man eine Berechnung machen muss ?
Hans
Ansonsten Super gemacht.....
Zusatz...
04.12.2017 15:18:14
Hans
Moin moin,
hab gerade mal beim Steuerberater angerufen, der meint ich brauche nur die Kundennummer das Datum und den Eurobetrag das würde reichen....
Ich weiß aber nicht wie ich das Makro anpassen soll, denn mit diesen Angaben
'Prüfen ob Datei mit angegebenen Datum übereinstimmt
If strTemp(1) = Format(Range("A1"), "dd.mm.yyyy") Then
'Daten eintragen:
For i = 0 To UBound(strTemp)
Cells(neueZeile, i + 1) = strTemp(i)
Next
neueZeile = neueZeile + 1
kann ich noch gar nichts anfangen....
Hans
Anzeige
AW: Noch nicht ganz aber faßt....
04.12.2017 16:05:59
Robert
Hallo Hans,
dann versuche es mal hiermit:
Sub dateinameneinlesen1()
Dim strPfad As String, strDatnam As String
Dim neueZeile As Long, strTemp, i As Integer
'Erst der Pfad
strPfad = "C:\Recycling\Rechnungen\"
strDatnam = Dir(strPfad & "*.pdf")
'ersteZeile für das Ergebnis
neueZeile = 10
'alte Daten löschen
Rows(neueZeile).CurrentRegion.Rows.Delete Shift:=xlUp
Do While Len(strDatnam)
'Dateinamen (ohne Endung und €-Zeichen) aufteilen,  _
Trennzeichen ist " - "
strTemp = Split(Left(strDatnam, Len(strDatnam) - 6), " - ")
'Prüfen ob Datei mit angegebenen Datum übereinstimmt
If strTemp(1) = Format(Range("A1"), "dd.mm.yyyy") Then
'Daten eintragen:
For i = 0 To UBound(strTemp) -1
Cells(neueZeile, i + 1) = strTemp(i)
Next
Cells(neueZeile, i + 1) = CCur(strTemp(i))
Cells(neueZeile, i + 1).Style = "Currency"
neueZeile = neueZeile + 1
End If
strDatnam = Dir
Loop
Cells(neueZeile, i) = "Summe"
Cells(neueZeile, i + 1).Style = "Currency"
Cells(neueZeile, i + 1).FormulaR1C1 = "=SUM(R[-" & neueZeile - 10 & "]C:R[-1]C)"
End Sub
Die rot dargestellten Zeilen habe ich geändert bzw. neu eingefügt.
Die Dateiendung wird dabei entfernt. Außerdem wird der letzte Teil (der Rechnungsbetrag) nicht mehr im String- sondern im Währungsformat in die entsprechende Zelle eingefügt. Damit kann dann in der Tabelle gerechnet werden. Hier wird eine Zeile unter dem letzten Eintrag dann die Summe gebildet.
Gruß
Robert
Anzeige
Super.... geht prima ... vielen Dank
04.12.2017 16:12:39
Hans
Hallo Robert,
scheint super zu klappen... Vielen Dank...
Hans
AW: Super.... geht prima ... vielen Dank
04.12.2017 17:32:17
Hajo_Zi
Hallo Hans,
Warum Offen?

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige