Hallöchen,
wenn Du das Original nicht gespeichert hast, brauchst Du es auch nicht zurücksetzen.
Öffne in Deinem Code das Original und schließe mit ThisWorkbook.Close False das mit SaveAs gespeicherte offene.
Hallo Schauan,
jetzt kann Ich dir nicht ganz folgen wo was gemacht werden kann bzw muß,
bin nicht so der VBA`ler :22:
Hallöchen,
hie rmal ein Auszug aus dem Original:
Code:
ActiveWorkbook.SaveAs strFilename, FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
Das könntest Du so ergänzen:
Code:
ActiveWorkbook.SaveAs strFilename, FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
'Datei oeffnen
Workbooks.Open "C:\ichweissnichtwodieliegt\ichweissnichtwiedieheisst.xlsx"
'diese Datei ohne Speichern schliessen
Thisworkbook.Close False
End Sub
Ist jetzt allerdings ungetestet
Hallo Schauan,
funktioniert auf Anhieb
Danke
PS
jetzt ist nur noch die eine Frage offen
Besteht eigentlich die Möglichkeit das man an der Range("C14"), ".xlsm") noch die Zelle C16 einbindet. ZB. in C14 steht Mayer und in C16 Wohnzimmer der Speichername sollte dann Mayer_Wohnzimmer.xlsm lauten.
Hallöchen,
das Prinzip steht schon im Code
mit & kann man Daten verbinden, feste Zeichenketten kommen in Anführungszeichen.
…..Range("C14") & "_" & Range("C16") …..
(24.01.2019, 17:01)schauan schrieb: [ -> ]Hallöchen,
das Prinzip steht schon im Code mit & kann man Daten verbinden, feste Zeichenketten kommen in Anführungszeichen.
…..Range("C14") & "_" & Range("C16") …..
Hallo Schauan,
das ist Bombe,
Danke.... :18:
Hallo zusammen,
habe versucht aus einer bestehenden VBA Sammlung das richtige zusammen zu stellen jedoch klappt dies nur zu hälfte. Bin nicht so der VBA`ler. Ich gehe jedoch davon aus das an derm unteren Teil etwas nicht mit oberen Teil harmoniert.
Folgendes wollte ich ( hat zum Teil geklappt) erreichen.
Button drücken ein bestimmter Bereich wird unter dem was in Zelle C14 und C16 steht mit dem Datum abgespeichert.
was er jedoch nicht macht ist wenn die Datei schon vorhanden ist diese mit der 0001 und folgende zu erhöhen.
Er überschreibt auch die bestehende nicht .
Kann mir jemand helfen :19: :19: :19: :19:
Code:
Sub PDF_Speichern_1()
Dim strFilename As String
Const LW = "F:\"
Const DateiPfad = "F:\0005 Fa Knopf Unterlagen\08 Kalkulationsunterlagen\Kunden_Angebote\Trockenbau\"
ChDrive LW
DateiName = (DateiPfad & Range("C14") & "_" & Range("C16") & "_" & Format(Date, "YYYY-MM-DD_") & ".pdf")
Range("$A$7:$K$64").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
DateiName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
Private Function getName(ByVal strName As String, ByVal strExtension As String) As String
Dim lngNummer As Long
If Dir(strName & strExtension) = "" Then
getName = strName & strExtension
Else
lngNummer = 1
While Dir(strName & "_" & Format(lngNummer, "000") & strExtension) <> ""
lngNummer = lngNummer + 1
Wend
getName = strName & "_" & Format(lngNummer, "000") & strExtension
End If
End Function
Danke
Hallöchen,
im Moment speicherst Du Deine pdf mit dem Datum im Name ab.
Die Function getName verwendest Du nicht.
Die Frage wäre, wo die Nummer hin soll. Wenn die hinter das Datum soll, dann eventuell so:
DateiName = getName(DateiPfad & Range("C14") & "_" & Range("C16") & "_" & Format(Date, "YYYY-MM-DD_") , ".pdf")
Übrigens bekommst DU dann vor .pdf 2x das Underline. Du könntest auch das nach DD weglassen.
Hallo Schauan,
danke es funktioniert.
:18:
So nochmals eine Frage zu VBA,
habe mit dem Makrorecorder ein VBA aufgezeichnet das folgendes machen sollte:
- den Filter in Zelle H 24 anklicken und alles ausblenden was 0,0 anzeigt.
- dann habe Ich den Druckbereich markiert A7-K64
- Dann bin Ich auf Datei denn Button Drucken gedrückt
- Dann zurück auf das Arbeitsblatt und den Filter in Zelle H24 angeklickt und alles einblenden aktiviert.
- den Makrorecorder beendet.
Beim aufzeichen waren alle Felder in der Spalte H25-H51 leer.
Werden jetzt einige Zellen durch die bearbeitung belegt und das Makro gestartet blendet es auch die Zellen über 0,0 aus.
kein Plan wie das geht.... :22: :22:
Sub Drucken()
'
' Drucken Makro
'
'
ActiveSheet.Range("$A$24:$J$52").AutoFilter Field:=8, Criteria1:="="
Range("A7:K64").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$24:$J$52").AutoFilter Field:=8
Range("A7").Select
End Sub
das ist das aufgezeichnete Makro