Makro für Dateiname aus Zelle
#1
Question 
Moin,
ich wollte mir gerne mein Leben etwas leichter machen, indem ich mir einen Makro bastle, der den Dateinamen, wenn ich in Excel ein Blatt als PDF speichere, automatisch aus einer bestimmten Zelle bezieht.
Nun hab ich gar keine Ahnung von Makros und auch schon versucht, ein paar Varianten, die ich durchs Googlen gefunden habe, in copy + paste Manier anzuwenden, aber bisher hat es noch nicht geklappt...

Die Situation sieht so aus:

Ich habe eine Excel-Datei, wovon das zweite Blatt (von zweien) eine Rechnung ist, welche ich immer wieder neu als PDF abspeichere, um eine Rechnung abzuspeichern und natürlich als Dateinamen dann die Rechnungsnummer eingebe.
Nun befindet sich die Rechnungsnummer in Zelle "D20" des zweiten Blattes und müsste ja eigentlich ganz gut zu übernehmen sein.
Hab nur keine Ahnung wie.

Kleines Bespiel:
Zelle "D20" beinhaltet "A20180001", so einfach, so gut. Optimal wäre natürlich, wenn der Rechnungsnummer noch die Kennzeichnung als Rechnung vorgeschaltet wäre, sowas wie "Rechnung-", sodass am ende der Name der Datei automatisch "Rechnung-A20180001" wäre, wenn ich sie abspeichern will.

Kann mir jemand helfen? Vielen Dank im Voraus!

Liebe Grüße;
Justus
Top
#2
das Makro ist einfach.. nur solltest du eine Bsp. Datei bereitstellen und auch einen Dateipfad benennen wo die Rechnungen abgespeichert werden sollen...
Top
#3
Okay, also die Datei könnte ich jetzt aus datenschutzrechtlichen Gründen leider nicht hochladen und den Pfad bekäme ich denke ich auch noch hin, sowas wie /Users/xzy/123/blabla/01 halt.
Ach ja, ist für Mac, das vergaß ich zu erwähnen!
Top
#4
Du könntest eine bsp. Datei hochladen..
Top
#5
So in etwa sähe die Datei aus...
Falls möglich, wäre es natürlich auch noch einfacher, wenn beim Speichern als PDF direkt die Option nur "Blatt" ausgewählt wäre.
Ist sowas möglich?

Danke!


Angehängte Dateien
.xls   Musterrechnung.xls (Größe: 32,5 KB / Downloads: 15)
Top
#6
so .. 
Es wird ein Ordner mit "Rechnungen" angelegt im Dateiverzeichnis der Exceldatei!, da du mir den Pfad nicht nennen kannst und dann das Tabellenblatt 1 darin gespeichert wie gewünscht!
Top
#7
Hallo,

ich weiß nicht, ob ich dein Problem richtig verstehe. Meiner Meinung nach ... könnte man dein Problem so in etwa lösen:

http://ms-excel.eu/excel-vba-codes/excel...ungsnummer

Lg Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#8
Hallöchen,

da es sich nicht um eine umfangreiches Programmieraufgabe handelt, hier mal eine Antwort ohne Beispieldatei. Hat sicher auch den einen oder anderen Vorteil, siehe unten.

1. Zeichne die Speicherung als pdf auf. Du erhältst im Prinzip das:

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       "G:\Test\Mappe1.pdf", Quality:=xlQualityStandard, IncludeDocProperties:= _
       True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

2. Ersetze den Dateinamen durch die Zelle, im Prinzip so:

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       Range("A1").Value, Quality:=xlQualityStandard, IncludeDocProperties:= _
       True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Hinweise:

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

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

Die Frage nach dem aktiven Blatt erledigt sich von selbst, siehe Code.
Experimentiere einfach mal mit ActiveSheet, Sheets("xyz"), ActiveWorkbook ...


mögliche Vorteile:
  • Eine Lösung / ein Ansatz ist sofort im Thread ersichtlich
  • Der Fragesteller braucht keine Datei hochladen
  • Eine Suchender braucht keine Datei herunterladen
  • Es ist keine xlsm im Spiel, die ja dem einen oder anderen zu unsicher ist
  • Ein Lösungsansatz kann allgemeiner formuliert werden und könnte dadurch mehr Suchenden helfen
  • Der Fragesteller ist eventuell angehalten, sich intensiver mit Excel und VBA auseinander zu setzen und ggf. Änderungen und Anpassungen selbst vorzunehmen
  • (dadurch gibt's für den einen oder anderen vielleicht auch einen größeren Lernerfolg)
  • ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
Hi André,

dass unsere Meinungen, was das Hochladen von Dateien anbelangt, sehr konträr sind, haben wir ja schon persönlich diskutiert. Deshalb möchte ich dein Statement pro Verzicht auf Dateien nicht unkommentiert stehen lassen.


Zitat:Eine Lösung / ein Ansatz ist sofort im Thread ersichtlich

Mit einer Datei genauso gut wie ohne

Zitat:Der Fragesteller braucht keine Datei hochladen

… und der Helfende kann sich durch einen Wust an Erklärungen durcharbeiten, bis irgendwann nach der zwanzigsten Nachfrage klar wird, was eigentlich gewünscht ist. Und dann darf sich der Helfende, um seine Ideen oder Vorschläge zu testen, eine eigene Datei nach den Angaben des TE nachbauen, um eventuell hinterher lesen zu müssen: nein, nein, meine Datei sieht anders aus – das geht nicht.
Aber vllt. bringen die Weihnachtswichtel morgen die schon lange ersehnte neue Kristallkugel. ?


Zitat:Eine Suchender braucht keine Datei herunterladen

Da der überwiegende Teil der Suchenden eh halbe Experten sind, kommen sie natürlich mit den oft abenteuerlichen Problembeschreibungen und den exzellenten (Teil)Antworten, die in der Regel sehr konjunktivbelastet sind, sofort klar und können sich die schwere Arbeit eines Downloads sparen. Wink
Ich frag mich eigentlich nur, warum auf den meisten Hilfeseiten visuelle Hilfsmittel zu sehen zu sehen sind und warum so irrsinnig viele Ratgeber auf Videoclips und/oder herunterladbare Beispieldateien (stellvertretende Beispiele für Abertausende: Andreas Thehos, Martin Weiß) Wert legen. Vllt. weil sie die weniger versierten Exceluser erreichen wollen?


Zitat:Es ist keine xlsm im Spiel, die ja dem einen oder anderen zu unsicher ist

 Dateien und Code können durchaus getrennt gepostet werden.


Zitat:Ein Lösungsansatz kann allgemeiner formuliert werden und könnte dadurch mehr Suchenden helfen
 
… und könnte natürlich dazu dienen, die mit wenigen Beiträgen versehene Threads etwas zu pimpen. Zehn oder zwanzig Nachfragen, weil das „Allgemeine“ nicht wirklich hilfreich ist, machen halt schon etwas her. Wink


Zitat:
  • Der Fragesteller ist eventuell angehalten, sich intensiver mit Excel und VBA auseinander zu setzen und ggf. Änderungen und Anpassungen selbst vorzunehmen
  • (dadurch gibt's für den einen oder anderen vielleicht auch einen größeren Lernerfolg)
 
Das ist das Einzige, dem ich vorbehaltlos zustimme. Natürlich haben wir uns auf die Fahnen geschrieben, dass Hilfe zur Selbsthilfe ganz weit vorn steht. Aber ist das wirklich immer sinnvoll?
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 2 Nutzer sagen Danke an WillWissen für diesen Beitrag:
  • , Käpt'n Blaubär
Top
#10
(19.12.2018, 19:43)justuskr schrieb: Ach ja, ist für Mac, das vergaß ich zu erwähnen!

Hallo, :19:

OK - jetzt hat es ja jeder gelesen. Beim Mac musst Du etwas anders rangehen. Aber es gibt glücklicherweise "Pfannen fertige Lösungen": :21:

Excel for the Mac Tips...

Zum Thema Beispieldateien - ich präferiere Demodateien (vom Frager UND Helfer) absolut. Einen - wie auch immer gearteten - Mehrwert in ellenlangen Themen (weder für den Fragenden NOCH für den Helfer) kann ich - auch in Punkto Lerneffekt - nicht erkennen. Blush
Top


Gehe zu:


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