Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1136to1140
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Prüfung "Datei bereits vorhanden" einbauen
Sandra
Hallo zusammen,
schon wieder ich.
Ich brauche Eure Hilfe bei der Ergänzung eines Makros. Derzeit sieht mein Makro so aus:
Sub PDF_Print_Sheet()
'Modifiziert
Dim wks As Worksheet
For Each wks In ActiveWindow.SelectedSheets
With wks
.Select
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Environ("userprofile") & "\Desktop\" & .Name & ".pdf", Quality:=xlQualityStandard,  _
_
_
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End With
Next wks
End Sub
Es läuft auch soweit ganz gut. Ich würde jetzt gerne noch eine Prüfung einbauen. Es soll geprüft werden, ob die Datei mit dem Namen schon vorhanden ist oder nicht und ob Sie dann ggfs. ersetzt werden soll.
Im Moment bekomme ich nämlich eine Fehlermeldung, wenn ich das Makro ausführe und eine Datei mit gleichem Namen bereits vorhanden ist.
Hier ist diese "Funktion" (DANKE TINO!!) mit eingebaut:
Sub Makro1()
Dim oWB As Workbook
Dim oSh As Worksheet
Dim objShell As Object
Dim Desktop As String
Dim strPDF_Name As String
strPDF_Name = InputBox("Geben sie den Namen der Pdf Datei an", "Name vergeben")
If strPDF_Name = "" Then Exit Sub
strPDF_Name = IIf(Right$(LCase(strPDF_Name), 4) = ".pdf", strPDF_Name, strPDF_Name & ".pdf")
Set objShell = CreateObject("WScript.Shell")
Desktop = objShell.SpecialFolders("Desktop")
Desktop = IIf(Right$(Desktop, 1) = "\", Desktop, Desktop & "\")
If Dir(Desktop & strPDF_Name)  "" Then
If MsgBox("Datei mit den Namen " & strPDF_Name & " schon vorhanden!" & vbCr & _
"Wollen Sie diese ersetzen?", vbYesNo) = vbNo Then
Exit Sub
End If
End If
Application.ScreenUpdating = False
ActiveWindow.SelectedSheets.Copy
Set oWB = ActiveWorkbook
For Each oSh In oWB.Worksheets
oSh.PageSetup.RightFooter = "Seite &P von &N"
Next oSh
oWB.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Desktop & "Name.pdf", Quality:=xlQualityStandard, IncludeDocProperties:= _
True, IgnorePrintAreas:=False, OpenAfterPublish:=False
oWB.Close False
Application.ScreenUpdating = True
End Sub
Leider weiß ich nicht wie ich diesen Teil in mein Makro einbauen kann.
Könnt Ihr mir dabei helfen?
Lieben Dank
Sandra

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Prüfung "Datei bereits vorhanden" einbauen
09.02.2010 10:51:11
Ramses
Hallo
Warum willst du das ändern wenn das von Tino funktioniert ?
Ausserdem würde das nichts bringen, weil in deinem Beispiel keine Abfrage/vorgabe des Dateinamens vorhanden ist.
Woher soll das Makro also wissen, nach welcher Datei es suchen soll ?
Gruss Rainer
AW: Prüfung "Datei bereits vorhanden" einbauen
09.02.2010 11:24:33
Sandra
Hallo Rainer,
die Lösung von Tino ist für ein anderes Problem, welches durch diese Lösung aber nicht behoben ist.
Eben diese Abfrage, ob die Datei schon vorhanden ist (die in diesem Moment abgespeichert werden soll) möchte ich gerne einarbeiten - mit dem Zusatz, dass bei bestehender Datei gefragt wird, ob die Datei ersetzt werden soll. Es muss also nach dem Namen suchen, den es gerade der Datei gegeben hat, die auf dem Desktop gespeichert werden soll.
Bei "meinem" Makro ist der Dateiname = Name des Tabellenblattes. Wenn nun eine Datei mit gleichem Namen besteht bekomme ich eine Fehlermeldung (Laufzeitfehler irgendwas). D. h. wenn ein Kollege diese Makro ausführt und diese Meldung bekommt, weiß er nicht, dass es daran liegt, das es bereits auf seinem Desktop eine Datei mit gleichem Namen gibt. Ich weiß es, weil ich mich etwas mit der VBA-Programmierung beschäftige und mein Wissen dahingehend gerne erweitern möchte.
Ich hoffe Du kannst mich verstehen, was ich versuche zu sagen.
Gruß Sandra
Anzeige
AW: Prüfung "Datei bereits vorhanden" einbauen
09.02.2010 11:35:09
Ramses
Hallo
mal quick und dirty
Sub PDF_Print_Sheet()
'Modifiziert
Dim wks As Worksheet
For Each wks In ActiveWindow.SelectedSheets
With wks
.Select
If Dir(Environ("userprofile") & "\Desktop\" & .Name & ".pdf")"" Then
Qe  = Msgbox("Datei vorhanden und überschreiben ?",VbQuestion+vbYesNo," _
ACHTUNG")
if Qe = vbNo then Exit Sub
end if
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Environ("userprofile") & "\Desktop\" & .Name & ".pdf", Quality:=xlQualityStandard, _
_
_
_
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End With
Next wks
End Sub
Gruss Rainer
Anzeige
AW: Prüfung "Datei bereits vorhanden" einbauen
09.02.2010 11:52:30
Sandra
Das ist ja klasse. Den Text kann man ja wunderbar individuell anpassen.
Eine Frage habe ich noch. Wenn Du keine Lust mehr hast - dann lass es einfach. Ich will Dir echt nicht auf die Nerven gehen!!!
Kann ich in dem eigenen Text "Datei vorhanden ..." auch den Dateinamen angeben, welche vorhanden ist?
Ich hatte es versucht, aber ich bin in VBA echt noch blutiger Anfänger. Leider habe ich es in keiner Variation richtig gemacht.
Wenn es zu lange dauert - lass es.
Danke für die tolle Hilfe und Unterstützung! Es ist total toll das es Euch gibt.
Liebe Grüße
Sandra
AW: Prüfung "Datei bereits vorhanden" einbauen
09.02.2010 11:55:15
Ramses
Hallo
Qe = Msgbox("Die Datei: " & Environ("userprofile") & "\Desktop\" & .Name & ".pdf" & vblf & "ist bereits vorhanden." & vblf & "Soll die Datei überschrieben werden ?",VbQuestion+vbYesNo,"ACHTUNG")
Gruss Rainer
Anzeige
Makro schützen
09.02.2010 12:11:29
Sandra
PERFEKT!!!!!
Letzte - eher allgemeine - Frage...
Kann ich das Makro schützen. Also Schreibschutz o. ä. Die Datei selber darf komplett bearbeitet werden.
Gruß
Sandra
AW: Makro schützen
09.02.2010 12:21:08
Ramses
Hallo
Im Codeeditor rechte Maustaste auf deine Mappe
Eigenschaften von VBA-Projekt
Register Schutz
Gruss Rainer
PERFEKT!!!
09.02.2010 12:29:19
Sandra
Jetzt bin ich glücklich - wunschlos!!

BESTEN DANK!!!!!
Liebe Grüße aus Hamburg
Sandra

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige