Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

best. sheet als pdf speichern mit vba

best. sheet als pdf speichern mit vba
27.02.2013 18:02:15
Bernd
Hallo zusammen,
Brauche Hilfe bei VBA,
Meine Arbeitsmappe besteht aus 10 Tabellenblättern. Erste heißt "Startmenü" dort möchte ich einen Button erstellen und das hinterlegte Makro soll nachfolgenden Code enthalten: speichere Tab-Blatt "Rechnungen" und hole den Ordnerpfad aus Tab-Blatt "Hilfstabelle" in Zelle B9 (siehe Nachfolgendes Beispiel)...
Hilfstabelle
 AB
9Pfad RechnungD:\Firma\Rechnungen\2013\

verwendete Formeln
Zelle Formel Bereich
B9 =B7&":\Firma\Rechnungen"&"\"&JAHR(HEUTE())&"\" 

Tabellendarstellung in Foren Version 5.51


Danke schon mal im Voraus für eure Bemühungen.
Gruß Bernd

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: best. sheet als pdf speichern mit vba
27.02.2013 20:37:26
Matze
Hallo Bernd,
die Recherche hier, hat das Thema schon mehrfach aufgegriffen,
hier ein paar Zeilen die du bestimmt schaffst auf deine Wünsche hin ab zu ändern.
Ich muss in die Koje, frühschicht.
Sub Speichern_unter()
Dim Datei As String
Dim Verzeichnis As String
Dim SaveDummy As Variant
Verzeichnis = "C:\temp\" 'Verzeichnis-Vorschlag
Datei = Range("F4") & Format(Date, "_dd_mm_yy") & ".xls" 'Datei-Vorschlag
SaveDummy = SpeichernUnter(Verzeichnis & Datei)
If SaveDummy  False Then ActiveWorkbook.SaveAs SaveDummy 'Es wurde im Dialog auf Speichern  _
gedrückt
End Sub

Function SpeichernUnter(VorgabeName As String) As Variant
SpeichernUnter = Application.GetSaveAsFilename(InitialFileName:=VorgabeName, Filefilter:="Excel
Dateien (*.xlsx),*.xls", FilterIndex:=1, Title:="Speichern unter...", ButtonText:="speichern")
End Function

Matze
PS.:Wenn du weitere Fragen hast markiere deinen Beitrag als "offen"

Anzeige
AW: best. sheet als pdf speichern mit vba
27.02.2013 21:09:29
Bernd
Hallo Matze,
ich habe was weiß ich wie viel VBA Code getestet, es scheitert immer am auslesen des Ordnerpfads aus Tabblatt "Hilfstabelle Zelle B9" und aus dem verketten des neuen Dateinamens aus Tabblatt "Rechnung Zelle B7 & "_" & B6.
Da scheitere jedes mal, da meine VBA Kenntnisse gleich null sind, aber ich bin lehrnwillig!!!
Kannst du mir dabei Hilfestellung geben?
Gruß Bernd

AW: best. sheet als pdf speichern mit vba
28.02.2013 10:50:37
Case
Hallo, :-)
probiere es mal so (wenn Du die PDF-Datei gleich angezeigt bekommen möchtest, dann entferne das Kommentarzeichen im Code):
Option Explicit
Sub Main()
Dim strTMP As String
strTMP = ThisWorkbook.Worksheets("Hilfstabelle").Range("B9").Text
With ThisWorkbook.Worksheets("Rechnungen")
strTMP = strTMP & .Range("B7").Value & "_" & .Range("B6").Value
.ExportAsFixedFormat 0, strTMP ', OpenAfterPublish:=True
End With
End Sub
Hier noch eine Beispieldatei...
Servus
Case

Anzeige
AW: best. sheet als pdf speichern mit vba
28.02.2013 16:16:22
Bernd
Danke Case für deine Hilfe bzw. deine Datei, für mich als Laien ist so eine bildliche Darstellung sehr hilfreich und ich lerne dabei sehr viel.
In deiner Musterdatei stoppt der Debugger in folgender Zeile:
.ExportAsFixedFormat 0, strTMP ', OpenAfterPublish:=True
Wenn ich den Code bei mir in eine Modul einfüge stoppt der Debugger hier:
With ThisWorkbook.Worksheets("Rechnungen")
Fällt dir was ein?
Gruß
Bernd

Anzeige
AW: best. sheet als pdf speichern mit vba
28.02.2013 16:44:02
Bernd
Nachtrag:
kleiner Fehler behoben "With ThisWorkbook.Worksheets("Rechnungen") falsch, richtig "Rechnung"
Jetzt läuft der Code durch, liefert aber ein falsches Ergebnis und zwar die abgespeicherte PDF-Datei sieht so aus: "_.pdf". Die Datei wurde im richtigen Ordner abgespeichert, aber den Dateinamen soll es aus dem Blatt "Rechnung" Zelle F7+_+F6
Was muss ich in der Codezeile ändern?
Gruß
Bernd

AW: best. sheet als pdf speichern mit vba
28.02.2013 17:51:49
Matze
Hallo Bernd,
aber genau das macht doch der Code von Case.
Option Explicit
Sub Main()
Dim strTMP As String
strTMP = ThisWorkbook.Worksheets("Hilfstabelle").Range("B9").Text
With ThisWorkbook.Worksheets("Rechnung")
strTMP = strTMP & .Range("B7").Value & "_" & .Range("B6").Value
.ExportAsFixedFormat 0, strTMP ', OpenAfterPublish:=True
End With
End Sub
Tippfehler in der Formel?
IM Blatt Hilfstabelle Zelle B9 hast du die Formel =B7&":\Firma\Rechnungen"&"\"&JAHR(HEUTE())&"\"
Deinen Speicherpfad kannst du doch direkt in den Code schreiben, du brauchst da keine Formel für.
Auch wenn du das mit der Formel ausliest, "muss" der Ordner vorher erstellt sein.der Code legt dir den nicht an.
Matze

Anzeige
Abänderung des bisherigen Codes,..
28.02.2013 18:09:38
Matze
hier eine Änderung des codes.
Es wird nun die Ordnerstruktur (Speicherpfad) direkt angelegt.(ohne prüfen)
(hab ich mir mal irgendwann von Nepumuk geklaut)
Der Restliche Code ist von Case.
Link: https://www.herber.de/bbs/user/84105.xls
Matze

AW: Abänderung des bisherigen Codes,..
28.02.2013 18:46:47
Bernd
Hallo Matze,
funktioniert nicht.
Neue Ordner Rechnung angelegt und nicht in bestehen Ordner D:\Firma\Rechnungen\2013 die Datei abgelegt.
Die Datei holt sich auch nicht aus dem TabBlatt "Rechnung" Wert aus der Zelle F7 + _ + Wert aus Zelle F6. Tatsächliche Werte in F7=9001(KundenNr)bzw. F6=2013-02/000258(RechnungsNr)
Dh. die Datei müsste so aussehen: 9001_2013-02/000258.pdf
Tatsächlich sieht sie so aus: _.pdf
Weißt du noch Rat?
Gruß
Bernd

Anzeige
AW: Abänderung des bisherigen Codes,..
28.02.2013 19:11:35
Matze
Hallo Bernd,
stell bitte die Datei ins Forum, machbar?
Oder erstelle die Datei als Muster mit ein paar Beispieldaten

FehlerUrsache ist,...
28.02.2013 19:59:26
Matze
Hallo Bernd,
es liegt an dem "/" in Zelle F6=2013-02/000258(RechnungsNr)
ändere den in - oder _ dann sollte es gehen!
Matze

AW: FehlerUrsache ist,...Muster
01.03.2013 09:12:52
Bernd
Hallo Matze,
in dem neuen Beispiel wird ein neuer Ordner "Rechnung" mit Unterordner "2013" das ist falsch. Siehe ersten Beitrag von mir. Es braucht auch nicht geprüft werden, ob der Ordner vorhanden ist.
Die Aufgabe ist: Nehme aus Workbook "BKF" das Tabellenblatt "Rechnung" speichere dieses Blatt auf der Festplatte in einen bereits definitiv bestehenden Ordner (D:\Firma\Rechnungen\2013\) ab. Der Pfad ist in Blatt "Hilfstabelle" in Zelle B9 hinterlegt und der Speichername ist die Verkettung aus den Werten der Zellen F7+_+F6.
So sieht die Kopf der Tabelle "Rechnung" aus....
Rechnung
 ABCDEF
2Herrn         
3Bernd Kiehl         
4Emmastr. 74         
5           
628213 Bremen      RgNr.:2013-02/00030
7        KdNr.:9001

definierte Namen
Name Bezieht sich auf Tabelle Z1S1-Formel
Print_Area=Rechnung!$A$2:$F$113Rechnung=Rechnung!Z2S1:Z113S6

Tabellendarstellung in Foren Version 5.51


Kannst du deinen Code dementsprechend ändern?
Gruß Bernd

Anzeige
AW: FehlerUrsache ist,...Muster
01.03.2013 10:31:24
Case
Hallo, :-)
nochmal zum Mitschreiben:
Hast Du mal probiert eine Datei mit z. B. diesem Namen "2013-02/00030" von Hand zu speichern?
Der Schrägstrich ist im Dateinamen NICHT erlaubt!
Servus
Case

AW: @ habe Fehler gefunden
01.03.2013 11:50:48
Bernd
Danke an Euch Beiden für die schnelle Hilfe.
Jetzt hat es geklappt, nachdem ich Slash in Punkt verändert habe.
Bis zum nächsten Mal
Gruß
Bernd

387 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige