Makro für Dateiname aus Zelle
#21
Moin, 
also ich melde mich noch mal zu Wort, ich konnte nicht ahnen, was ich hier für'n Fass aufgemacht habe. Sorry schon mal dafür.
Liebend gern würde ich einfach eine Datei hochladen; wegen der Inhalte, die sich auch nicht so einfach rauslöschen lassen, ohne das ganze Konstrukt zu zerstören, kann ich das leider nicht. Kundendaten, pipapo.
Ich habe jetzt mal sowohl den Code von Frogger1986 aus der Datei ausprobiert, als auch den Beispiel-Code von schauan.

Bei ersterem wird mir die Fehlermeldung "Laufzeitfehler 76" angezeigt, wohl bedeutend, dass er den Pfad nicht versteht/kennt. Ich habe jeden aufgeführten Beispielpfad in meinen geändert. Als Error wird der letzte/dritte Pfad im Code angegeben. 

Bei letzterem sagt er mir "Syntaxerror" und markiert direkt die erste Zeile.

Ich hoffe ich reiße nicht weitere Wunden auf, Danke schon mal für die rege Diskussion und Hilfe
Gruß Justus
Top
#22
Hallöchen,

was ist denn die erste Zeile in meinem Code ? Nach meiner Ansicht entweder Sub Makro1() oder die folgende wo nur das Hochkomma steht?… Browserabhängig gab es schon mal das Problem, dass "falsche" Zeichen im Code anstelle von Leerzeichen oder Zeilenvorschüben im Code übertragen wurden. Da hilft dann nur, Leerzeichen und Zeilenvorschübe löschen und neu setzen, solange bis es wieder passt Sad
Ansonsten, wie gesagt, kannst Du mal den Makrorekorder nutzen. Das war ja der Sinn meiner Antwort #8. Ich hab das nur unter Windows aufgezeichnet, hab keinen Mac. Prinzip und Code sind aber vergleichbar.
Da sollte also etwas ähnliches rauskommen wie bei mir und den Code könntest Du zum Anpassen hier posten, falls meine Hinweise nicht ausreichen. Hauptsache, Du stolperst nicht über die von Ralf erwähnte Sandbox. Da kann ich allerdings nix dazu sagen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#23
Hast du mein Makro auch ohne Änderung einmal probiert?
Top
#24
Zitat:Hast du mein Makro auch ohne Änderung einmal probiert?

Also ohne Abänderungen kommt die Fehlermeldung:
   
   

Zitat:was ist denn die erste Zeile in meinem Code ?

Und hier ist es wirklich die allererste Zeile
   
   
Top
#25
Hallo, :19:

nochmal zum Mitschreiben/lesen/denken: :21:

Beim Mac ist der Pfadtrenner NICHT der Backslash! Exclamation

Die VBA-Programmierung unter Office für Mac ist einfach nur ...., sofern man nicht nur kleine Popelprogramme schreiben möchte. Viele Dinge funktionieren einfach nicht. :05:

Probiere es mal so um die Datei im gleichen Pfad wie die Exceldatei zu speichern:

Code:
ActiveSheet.ExportAsFixedFormat 0, ThisWorkbook.Path & Application.PathSeparator & "Rechnung_" & Range("D20").Value


Funktioniert aber nur, wenn Das Rechnungsblatt das aktive ist sonst so:

Code:
With ThisWorkbook.Worksheets("Rechnung")
    .ExportAsFixedFormat 0, ThisWorkbook.Path & Application.PathSeparator & "Rechnung_" & .Range("D20").Value
End With

Tabellenblattname anpassen. Die weiteren Parameter bei Bedarf noch angeben.
Top
#26
Hallöchen,

im Codebeispiel hat eine Klammer gefehlt, in der Erklärung war sie dabei:

Wenn bei Makroausführung das Blatt mit der Zelle für den Dateinamen nicht das aktive ist, musst Du den Blattname dazuschreiben
Sheets("Tabelle1").Range("A1").Value
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#27
(28.12.2018, 19:16)schauan schrieb: Hallöchen,

im Codebeispiel hat eine Klammer gefehlt, in der Erklärung war sie dabei:

Wenn bei Makroausführung das Blatt mit der Zelle für den Dateinamen nicht das aktive ist, musst Du den Blattname dazuschreiben
Sheets("Tabelle1").Range("A1").Value

Moin, stimmt, da ist eine Klammer verloren gegangen! Das Makro lässt sich jetzt so auch ausführen, doch funktionieren tut es nicht, der Dateiname bleibt der gleiche :/

@Case:
Danke erstmal für die Hilfe, ich weiß nur leider nicht, wo ich deinen Tipp einzusetzen hab? In einen der Codes von den beiden anderen?

Danke an Alle an dieser Stelle nochmal!
Top
#28
Hallöchen,

Zitat:der Dateiname bleibt der gleiche :/
???

Für einen speziellen Pfad musst Du die entsprechende Zeichenkette zusammensetzen.

Ich schrieb
Zitat:Wenn in der Zelle nur der Dateiname steht und nicht das Verzeichnis und Du ein anderes als das aktive Verzeichnis willst, musst Du das auch noch zusammensetzen:
"G:\Test\" & Sheets("Tabelle1").Range("A1").Value

In Deinem Fall bedeutet das

"/Users/xzy/123/blabla/01/" & Range("A20").Value

Wichtig ist, dass auch hinter der Verzeichnisangabe 01 noch ein Slash sein muss, ansonsten wird 01 als Teil des Dateinamens interpretiert. Und der spezielle Pfad kommt natürlich in Anführungszeichen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#29
(29.12.2018, 13:59)justuskr schrieb: @Case:
Danke erstmal für die Hilfe, ich weiß nur leider nicht, wo ich deinen Tipp einzusetzen hab? In einen der Codes von den beiden anderen?

Hallo, :19:
was passiert denn, wenn Du einfach mal folgenden Code startest (beim starten des Makros musst Du im Moment auf dem Taballenblatt mit der Rechnung sein) und dann in den Ordner mit der Exceldatei schaust? PDF da?

Code:
Sub TuEs()
    ActiveSheet.ExportAsFixedFormat 0, ThisWorkbook.Path & Application.PathSeparator & "Rechnung_" & Range("D20").Value
End Sub

Um einen anderen Pfad - wenn erforderlich - kann man sich dann kümmern. :21:
Top
#30
(29.12.2018, 14:10)schauan schrieb: "/Users/xzy/123/blabla/01/" & Range("A20").Value

Wenn ich den ursprünglichen Code ausführe, kommt keine Fehlermeldung, aber wenn ich das Dokument bzw. Blatt speichern will, wurde nicht der Name der Zelle übernommen.
Ein Verzeichniswechsel ist eigentlich nicht notwenig, da die PDF-Datei in den gleichen Ordner wie die Excel-Datei soll.
Probiert habe ich es trotzdem mal mit folgendem Ergebnis:
   
   

EDIT: Ich korrigiere mich. Aus irgendeinem Grund funktioniert auch das Ausführen nicht mehr und "Laufzeitfehler 1004" wird angezeigt...

(29.12.2018, 15:17)Case schrieb: Hallo, :19: 
was passiert denn, wenn Du einfach mal folgenden Code startest (beim starten des Makros musst Du im Moment auf dem Taballenblatt mit der Rechnung sein) und dann in den Ordner mit der Exceldatei schaust? PDF da?

Code:
Sub TuEs()
    ActiveSheet.ExportAsFixedFormat 0, ThisWorkbook.Path & Application.PathSeparator & "Rechnung_" & Range("D20").Value
End Sub

Dann kommt ne Fehlermeldung
   
   
Top


Gehe zu:


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