Anzeige
Archiv - Navigation
1900to1904
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
Inhaltsverzeichnis

VBA überschreiben/speichern

VBA überschreiben/speichern
19.10.2022 14:52:29
Tino
Hallo liebe Excel und VBA Profis,
ich habe seit Jahren eine Exceltabelle mit VBA im Einsatz (Danke an dieses Forum und Herrn Herber).
Nun habe ich folgendes Problem, die Eingaben in der Excelvorlage werden als XLS sowie .htm auf ein Netzlaufwerk gespeichert.
Wenn ich nun versuche die gespeicherte XLS nochmals zu öffnen um Änderungen vor zu nehmen dann wird die .htm Datei nicht als neue Datei gespeichert bzw. überschrieben da sie ja bereits vorhanden ist. Wie schaffe ich es meine bestehende Programmierung um eine Prüfung, Datei vorhanden also löschen, zu erweitern.

Public Sub Exporthtml()
With ThisWorkbook.PublishObjects
Call .Add(SourceType:=xlSourceRange, Filename:="\\Server\Dokumente\Heizöl\Tagesfahrplan_html\" & _
Format$(Worksheets("Tabelle1").Range("E2").Value, "yyyy_mm_dd") & ".htm", _
Sheet:="Tabelle1", Source:="$A$1:$M$14", HtmlType:=xlHtmlStatic, _
DivID:="Tagesfahrplan").Publish(Create:=True)
Call Exportxls
End With
End Sub
Public Sub Exportxls()
Application.ScreenUpdating = False
Call Worksheets("Tabelle1").Copy
With ActiveWorkbook
Call .SaveAs(Filename:="\\Server\Dokumente\Heizöl\Tagesfahrplan_xls\" & _
Format$(Worksheets("Tabelle1").Range("E2").Value, "yyyy_mm_dd") & "_Ausgedruckt_" & Format(Now, "yyyy_mm_dd_hh_mm") & _
".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled)
Call .Close(SaveChanges:=True)
End With
Application.ScreenUpdating = True
End Sub
Public Sub Drucken()
Sheets("Tabelle1").Range("A1:M14").PrintOut
Sheets("LKW").Range("A1:M14").PrintOut
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA überschreiben/speichern
19.10.2022 16:43:41
snb

Sub M_snb()
application.displayalerts=false
With ThisWorkbook
c00 = Format(.Sheets(1).Cells(2, 5), "yyyy_mm_dd")
.SaveAs "\\Server\Dokumente\Heizöl\Tagesfahrplan_xls\" & c00, 50
.Sheets(1).Range("$A$1:$M$14").SaveAs "\\Server\Dokumente\Heizöl\Tagesfahrplan_html\" & c00 & ".html", 44
End With
End Sub

AW: VBA überschreiben/speichern
19.10.2022 17:12:55
Tino
Hallo snb, vielen Dank für die schnelle Antwort und komprimieren des codes jedoch erhalte ich einen Laufzeitfehler 438
bei Zeile

.Sheet(1).Range("$A$1:$M$14").SaveAs "\\Server\Dokumente\Heizöl\Tagesfahrplan_html\" & c00 & ".html", 44

Anzeige
AW: VBA überschreiben/speichern
19.10.2022 17:25:53
Daniel
Hi
kommt darauf an.
Wenn die Datei nur gespeichert wird und im Makro die Rückfrage kommt: "Datei bereits vorhanden, wollen sie sie überschreiben?" (oder so ähnlich),
dann kann man diese mit dem Befehl: Application.DisplayAlerts = False unterdrücken. Nach diesem Befehl erscheinen die Rückfragen nicht mehr.
Ausgeführt wird immer die Option, die beim Erscheinen der Frage voreingestellt ist und beim Drücken von ENTER ausgeführt wird.
die andere alternative wäre, die Datei vorher zu löschen falls vorhanden:

if Dir(FileName)  "" Then Kill FileName
... SaveAs FileName
etwas anders sieht es aus, wenn die beim Export erstellte Datei nicht nur gespeichert, sondern auch geöffnet wird, das passiert beispielsweise beim Speichern als PDF, ob das beim Speichern als HTML auch passiert, weiß ich nicht.
Dann müsste man diese geöffnete Datei vor dem erneuten Export auch schließen, was per VBA nicht ganz einfach ist, weil man auf eine Datei außerhalb Excel zugreifen muss.
Einfacher wäre, dass Öffnen dieser "Kontrollansicht" beim Export zu unterbinden, das kann man normalerweise irgendwo einstellen, wenn man den Export macht. Das sollte man also mal von Hand machen und mit dem Recorder aufzeichnen, damit man sieht wie das in VBA dann programmiert wird
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige