Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
488to492
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
488to492
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datei austauschen

Datei austauschen
24.09.2004 08:06:03
Erich
Hallo EXCEL-Freunde,
ich versuche eine aktuelle Datei (mit bestimmten Inhalten) mit einer neuen
(leeren) Datei zu ersetzen / zu tauschen (gleicher Pfad, gleicher Dateiname).
Habe aus dem Forum verschiedene Ansätze zusammengetragen und komme nicht weiter:
Option Explicit
Sub Datei_tauschen()
' aktuelle Datei mit einer leeren Datei ersetzen
Dim strPath As String
Dim strName As String
Dim strFile1 As String ' = alte Datei
Dim strFile2 As String ' = neue Datei
Application.ScreenUpdating = False
strPath = ThisWorkbook.Path
strFile1 = ThisWorkbook.Name
Workbooks.Add
TabAuswahl ' neues Blatt anlegen zum sichern von Pfad und Datei
Sheets("alte Datei ist erledigt").Activate
Sheets("alte Datei ist erledigt").Cells(1, 1) = ThisWorkbook.Path
Sheets("alte Datei ist erledigt").Cells(2, 1) = ThisWorkbook.Name
strFile2 = Sheets("alte Datei ist erledigt").Cells(2, 1)
Windows(strFile1).Activate
''''''Jetzt fehlt die Lösung !!!!!!!!!!!
' solange die alte Datei nicht geschlossen ist,
' kann die neue Datei nicht unter dem gleichen Namen
' gespeichert werden.
' Wenn die alte Datei geschlossen ist, ist das Makro weg!!
With ActiveWorkbook
.Close
End With
ActiveWorkbook.SaveAs Filename:=strFile2, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.ScreenUpdating = True
End Sub
Sub TabAuswahl()
Dim Sh As Worksheet
Dim sName$
sName = "alte Datei ist erledigt"
For Each Sh In Worksheets
If InStr(Sh.Name, sName) > 0 Then
Sh.Select
Exit Sub
End If
Next Sh
Sheets.Add.Name = ("alte Datei ist erledigt")
Cells(1, 10).Select
End Sub

Alternativ bestünde auch die Möglichkeit alle Inhalte der Datei - incl. der
Module zu löschen - geht sowas?
Besten Dank für eine Hilfe!
mfg
Erich

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Teillösung
Erich
Hallo EXCEL-Freunde,
habe was gefunden, bei dem ich allerdings den "Laufzeitfehler 438" erhalte:
Private Sub Workbook_Open() '' Herber 30581 'Code eines Moduls löschen, wenn ein Termin vorbei ist 'Delete the code of a Module, in case a certain date has passed Dim VB As Object Dim X As Object Dim FileArray() Dim FCount%, ProcessCounter% Dim FName$ Set VB = ActiveWorkbook.VBProject If Format(Now, "DD/MM/YYYY") > "1.2.2001" Then For Each X In VB.VBComponents ' The code inside the codemodule of Table1 is deleted If X.Name = "Modul1" Then With VB.VBComponents(X.Name).CodeModule .DeleteLines 1, .CountOfLines End With End If Next X ActiveSheet.Save End If End Sub
Dabei wird der Code in Modul1 gelöscht - und dann kommt der Laufzeitfehler;
der Wechsel in andere Module geht anscheinend nicht.
Besten Dank nochmal!
mfg
Erich
Anzeige
ERLEDIGT!!
Erich
Ich lösche alle Inhalte in den Modulen und die Sheets!!
Dann spare ich mir das "Datei tauschen".
mfg
Erich

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige