Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wie Dateiendung "doc" durch "pdf" ersetzen?

Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 10:48:38
kb2stripe
Also ich lese aus einem Ordner Dateien aus und habe zwei Spalten in Excel; eine für den Original-Dateinamen, eine für den Namen des entsprechenden PDFs (= Original-Dateiname minus dateiendung + pdf)
Leider weiss ich nicht wie ich das Excel beibringen soll :-/
anfangsname = Dir("C:\Test\*.*")
datei_endung = UCase(Right(anfangsname, 3))
sowas war bisher meine Überlegung, aber ich weiss nicht wie ich weitermachen soll.
So kriege ich bei Word-Dateien in der Spalte "PDF-Name" momentan folgendes Ergebnis: "DOCpdf".
Wenn der Name der Datei aber Newsletter_XYZ.doc war, müsste in PDF-Name Newsletter_XYZ.pdf stehen. Wie kann ich das hinkriegen?
gruß
Pat

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 10:57:26
Harald
Hi Pat,
mal ein Ansatz
Range("a1").Replace What:=UCase(".xls"), Replacement:=".pdf", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Gruss Harald
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 11:15:30
kb2stripe
Hallo Harald,
vielen Dank für die schnelle Antwort, aber so richtig weiss ich nicht wie das ganze funktioniert (sind quasi meine ersten VB Schritte)
Also in Spalte L soll der PDF-Name am Ende stehen.
Versuche mal zu verstehen was deine Funktion genau macht:
Range("a1").Replace What:=UCase(".xls"), Replacement:=".pdf", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Also erste Frage, wofür steht das a1 :) Den Rest verstehe ich so: Suche nach .xls, ersetze durch .pdf
LookAt:=xlPart = nur einen Teil des Namens durchsuchen; dem Rest bin ich noch nie begegnet bisher *gg*
gruß
Pat
Anzeige
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 11:50:21
Harald
Hi,
bevor ich mir die Tastatur glühend schreibe ;-))
A1 ist der Anwendungsbereich
Replace markieren und F1 drücken (Replace-Methode für Range-Objekt)
Dann wirst Du auch erkennen, dass bei MatchCase = False mein UCase unsinnig war.
Gruss Harald
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 12:36:39
kb2stripe
Hi Harald,
habs mir angeguckt und jetzt wie folgt eingebaut:
...
Do Until datei_name = ""
datei_typ = UCase(Right(datei_name, 3))
datei_type1 = UCase(Left(datei_name, 6))
Cells(aktZeile, 12) = datei_name
If datei_type1 = "FOLDER" Then
Cells(aktZeile, 4) = datei_name
Cells(aktZeile, 2) = "Folder"
Cells(aktZeile, 12) = twb.Columns("L").Replace(".ppt", ".pdf", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, ReplaceFormat:=False)
aktZeile = aktZeile + 1
Else
....
wenn ich das so mache, kommt zwar keine Fehlermeldung, aber es wird in Spalte D "WAHR" geschrieben; leider weiss ich nicht wieso *gg*
woran kann das liegen bzw wie kann ich das berichtigen?
gruß
Pat
Anzeige
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 13:08:30
Harald
Hi Pat,
wo wir gerade beim Ersetzen sind ;-))
Ersetze
Cells(aktZeile, 12) = datei_name
durch
datei_name = Cells(aktZeile, 12)
Das sollte es eigentlich gewesen sein.
Gruss Harald
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 13:15:29
kb2stripe
Hi Harald,
daran lag es nicht. bzw das führt ja dazu dass der dateiname = leer ist, weil in Cells(aktZeile, 12) steht ja nichts drin.
Da wollte ich mit Cells(aktZeile, 12) = datei_name den Dateinamen reinschreiben lassen und dann mit der Replace Methode die Endung durch pdf ersetzen lassen.
Verstehe jedoch nicht wieso er mir als Ergebnis WAHR in die Zeilen schreibt.
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 13:21:03
Harald
Hi,
in deinem Codeschnipsel ist nicht zu erkennen, für was datei_name die Variable ist und wie sie deklariert ist.
Daher konnte ich nur ne Vermutung anstellen.
Wenn Du den Code per Einzelschritt durchgehst (F8-Taste), kannst Du dir anschauen, wann er welche Variable, wie belegt (Mauszeiger)
Gruss Harald
Anzeige
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 14:05:47
kb2stripe
Habe es jetzt abgeändert:
Vorher schreibe ich den Dateinamen in das Feld L:
Cells(aktZeile, 12) = datei_name
dann kommt die Replace Funktion:
Cells(aktZeile, 15) = twb.Columns("L").Replace(What:="PPT", Replacement:="pdf", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, ReplaceFormat:=False)
So funktioniert sie halbwegs, sprich ich kriege zwar in Spalte L die Namen der Dateien ohne ppt Endung, dafür mit pdf Änderung, in Spalte M (15te Spalte) kriege ich dafür jetzt immer WAHR ausgegeben. Woran könnte das liegen?
Bzw womit könnte ich die Replace Funktion anstelle von Cells(aktZeile, 15) gleichsetzen um diesen Fehler zu umgehen?
gruß
Pat
Anzeige
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 14:05:55
kb2stripe
Habe es jetzt abgeändert:
Vorher schreibe ich den Dateinamen in das Feld L:
Cells(aktZeile, 12) = datei_name
dann kommt die Replace Funktion:
Cells(aktZeile, 15) = twb.Columns("L").Replace(What:="PPT", Replacement:="pdf", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, ReplaceFormat:=False)
So funktioniert sie halbwegs, sprich ich kriege zwar in Spalte L die Namen der Dateien ohne ppt Endung, dafür mit pdf Änderung, in Spalte M (15te Spalte) kriege ich dafür jetzt immer WAHR ausgegeben. Woran könnte das liegen?
Bzw womit könnte ich die Replace Funktion anstelle von Cells(aktZeile, 15) gleichsetzen um diesen Fehler zu umgehen?
gruß
Pat
Anzeige
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 14:26:32
Harald
Das wird ja immer schöner ;-))
Ich hab keine !!! Ahnung für was datei_name steht....oder twb
Willste irgendwie nicht rausrücken.
...abgesehen davon.
Replace-Methode für Range-Objekte. Auszug aus der bereits erwähnten Hilfe.
Gibt einen Boolean-Wert zurück, der Zeichen in Zellen des angegebenen Bereichs kennzeichnet. Bei Verwendung dieser Methode wird weder die Markierung noch die aktive Zelle geändert
D.h.
Du gibst der Einzelzelle der aktZeile- Schleife das gesamte Replace-Paket der Spalte L an....und das ist ein Bool'scher Wert. Wahr oder Falsch. Boolean eben.
Er sagt dir nur, dass in Spalte L die Replace-Methode greift.
Kurz überschlagen wäre auch folgende Variante denkbar (wobei ich immer noch nicht weiß, was da eigentlich bezweckt werden soll)
Ich vermute der Dateiname aus Spalte 12 soll nach Spalte 15 mit pdf-Endung
Cells(aktZeile, 15) = Left(Cells(aktZeile, 12), Len(Cells(aktZeile, 12)) - 3) & "pdf"
Was natürlich nur bei 3-stelligen Endungen funzt.
Gruss Harald
Anzeige
AW: Wie Dateiendung "doc" durch "pdf" ersetzen?
22.06.2006 14:32:28
kb2stripe
Hiho Harald :)
sorry hab in der Eile vergessen die Definitionen aufzuschreiben:
-------------------------
Dim datei_name As String
Dim twb As Worksheet
datei_name = Dir("C:\Test\*.*")
Set twb = ThisWorkbook.Worksheets(1)
-------------------------
Ziel ist aus den Dateien eines Ordners eine Excel-Tabelle mit bestimmten Metadaten anzulegen. Habe u.a. eine Spalte OriginalName (Spalte J) und eine wo der PDF-Name rein soll (Spalte L).
Bei .pdf-Dateien setzt ich einfach beide Spalten = datei_name
für den Rest wollt ich jetzt die Replace Funktion benutzen. Werde jetzt aber dann mal deine obige Variante austesten :)
gruß
Pat
Anzeige
Kann erst wieder morgen angreifen
22.06.2006 14:36:00
Harald
...vielleicht klappt ja schon die Alternative
Gruss Harald

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige