Code umändern auf aktuellen Speicherort

Moderator: ModerationP

Code umändern auf aktuellen Speicherort

Beitragvon wut » 26. Sep 2021, 16:59

Hallo

ich habe da eine neue Frage und zwar habe ich Foren diese Code gefunden:

Code: Alles auswählen
Sub PDFspeichern()
Dim pdfName As String

With Sheets("Einleitung")

'pdfName = Application.GetSaveAsFilename(Environ("USERPROFILE") & "\Desktop\" & _
                                        .Range("A1") & .Range("A2") & Range("A3") & ".pdf", "PDF-Dateien (*.pdf), *.pdf")
pdfName = Application.GetSaveAsFilename(Environ("USERPROFILE") & "\Desktop\" & _
                                        .Range("A4") & ".pdf", "PDF-Dateien (*.pdf), *.pdf")
End With

If pdfName = "Falsch" Then Exit Sub

'pdfName = Application.GetSaveAsFilename(Environ("USERPROFILE") & "\Desktop\" & "Test" & ".pdf", "PDF-Dateien (*.pdf), *.pdf")

Sheets(Array("Einleitung", "Plan", "Fluss")).Copy

With ActiveWorkbook
     .ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, _
                          Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
                          OpenAfterPublish:=True
     .Close savechanges:=False
End With


End Sub


und

Code: Alles auswählen
 Sub EXCELspeichern()
     Dim Phad As String
     Phad = ThisWorkbook.Path
     ActiveWorkbook.SaveCopyAs Filename:=Phad & "\" & Worksheets("Einleitung").Range("A4") & ".XLSm"
 End Sub


beide funktionieren und helfen mir sehr sehr viel, leider verstehe ich die Pfad Angaben nicht und kann somit nicht mit beiden Codes das gleiche Ergebnis erzielen - das die xlsm und die pdf in dem Speicherort abgelegt werden wo die Quelldatei liegt.
Der 2te Code macht das, jetzt habe ich 2h versucht den oberen an den unteren und umgekehrt.
Habe das With Sheets("Einleitung") weggelassen usw. Aber ich bekomme es nicht hin
wut
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 396
Registriert: 21. Sep 2005, 11:32

Re: Code umändern auf aktuellen Speicherort

Beitragvon thowe » 26. Sep 2021, 18:07

Ist nicht so schwer zu verstehen

Mit dem ersten Code speicherst du das PDF-Dokument am Desktop des aktuellen Users mit dem Dateinamen der in Zelle A4 steht und dem Suffix .pdf

Mit dem zweiten Code speicherst du das XLSM-Dokument im Speicherort der aktuell geöffneten Arbeitsmappe mit dem Dateinamen der in Zelle A4 steht und dem Suffix .xlsm

-> warum das extra "übersetzen" muss, verstehe ich nicht....
LG & ciao....

thowe
<think happy thoughts>
Hast du Milch für Kaffe? Ja, ich habe "Fettarme". Das sehe ich. Bekomme ich nun eine Milch?
Benutzeravatar
thowe
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 686
Registriert: 09. Jul 2007, 12:20
Wohnort: Graz

Re: Code umändern auf aktuellen Speicherort

Beitragvon 1Matthias » 27. Sep 2021, 10:10

Moin!
Vllt. noch als Erklärung zum Code.
1 Variante:
Mit dem GetSaveAsFileName liest du nur den Pfad aus, den du haben willst. Das ist im Prinzip der selber Dialog wie beim Speichern untern. Steht so ja auch in der Hilfe.
https://docs.microsoft.com/de-de/office ... asfilename
Allerdings übernimmst du da nur den Pfad in deine Variable. Als Startparameter ist dabei der Desktop vorgegeben. Du könntest dich dann dort bis zum Ablageort durchklicken. Dann wäre das aus identisch. Ansonsten kannst du auch andere Parameter wie .path übergeben
Bsp:
Code: Alles auswählen
pdfName = Application.GetSaveAsFilename(ThisWorkbook.Path & "\" & _
                                        .Range("A4") & ".pdf", "PDF-Dateien (*.pdf), *.pdf")


Mit dem .ExportAsFixedFormat speicherst du dann die Datei als pdf im Pfad, den du vorher ausgelesen hast.

2. Variante
Die sollte klar sein. Du baust dir selber den Pfad zusammen. Der Pfad zur Originaldatei ist dabei .Path.

Wenn du die pdf auch im selben PFad willst (ohne irgendwas zu klicken oder zu suchen), übernimm das Schema von Variante 1 in 2 und lass das mit dem getsaveas weg.
Könnte so aussehen:
Code: Alles auswählen
Sub PDFspeichern()
Dim pdfName As String

Sheets(Array("Einleitung", "Plan", "Fluss")).Copy

pdfName = ThisWorkbook.FullName

'alterantiv
'pdfName = ThisWorkbook.Path & "/" & Worksheets("Einleitung").Range("A4")


With ActiveWorkbook
     .ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, _
                          Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
                          OpenAfterPublish:=True
     .Close savechanges:=False
End With


End Sub


VG
1Matthias
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 972
Registriert: 15. Aug 2017, 18:36

Re: Code umändern auf aktuellen Speicherort

Beitragvon wut » 30. Sep 2021, 12:41

perfekt dankeschön
wut
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 396
Registriert: 21. Sep 2005, 11:32


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: DerHoepp und 20 Gäste