PDA

Vollständige Version anzeigen : Datei umbenennen


JobCoach
18.03.2009, 12:00
Hi Folks,

meine Originaldatei wird mittels Schaltfläche unter einem anderen Namen abgespeichert, wobei vor der Speicherung die Schaltfläche gelöscht wird.

Code:
ChDrive ("v:")
ChDir ("V:\Projekte\PAS\PAS-02b\")
v = Application.GetSaveAsFilename _
("Test-Ergebniss " & strNameVorname & ".xls", "Excel-Mappen (*.xl*),*.xl*", 1, _
"640 Test Ergebnisse")
If v = False Then
Else
With Tabelle1
.Unprotect "Hurgha"
.Shapes(1).Delete
.Protect "Hurgha"
End With
ThisWorkbook.SaveAs v
End If
Nach diesem Vorgang möchte ich aber mit der Originaldatei weiterarbeiten und dort soll die Schaltfläche wieder vorhanden sein.

Frage 1: Kann ich die Datei im laufenden Betrieb mittels VBA umbenennen?

Frage 2: Wie stelle ich die zuvorgelöschte Schaltfläche wieder her?

Vielen Dank im Voraus

Manfred

NoNet
18.03.2009, 12:06
Hallo Manfred,

probiere mal diese Anweisung :

ThisWorkbook.SaveCopyAs v

JobCoach
18.03.2009, 12:24
Hallo Nonet,

deine Anweisung funktioniert prima. Damit wäre ein Problem gelöst.
Kennst du auch eine Möglichkeit, dass die Schaltfläche in der Originaldatei erhalten bleibt?

Bis dann dann

Manfred

NoNet
18.03.2009, 12:44
Hallo Manfred,

hier eine kleine Erweiterung : Button wird aus der Kopie der Mappe entfernt :

ThisWorkbook.SaveCopyAs v 'Kopie der Mappe speichern
Set wbext = GetObject(v) 'Kopie der Mappe "versteckt" öffnen
wbext.Sheets(1).Shapes(1).Delete 'Button aus Kopie löschen
wbext.Save 'Kopie erneut speichern
wbext.Close 'Kopie schliessen
Set wbext = Nothing 'Speicher für Variable wieder freigeben

Dieses Makro entfernt jedoch nur den Button aus der Mappe, nicht den damit verknüpften VBA-Code !
Wenn die Mappe ansonsten weiteren Code enthält, sollte das nicht stören.
Wenn die Mappe ansonsten jedoch keinen weiteren VBA-code enthält (bzw. keine VBA-Elemente enthalten soll), dann müsste man den Code auch noch aus der Mappe entfernen.

Verschiedene Beispiele dazu findest Du hier :
http://vba1.de/vba.php#vbe

Ich hoffe, das hilft Dir weiter !

JobCoach
18.03.2009, 13:21
Hi Nonet,

wenn ich deine Erweiterung einbaue, bekomme ich einen Laufzeitfehler. Was mache ich falsch?

Datei hängt an.

Bis dann dann

Manfred

NoNet
18.03.2009, 16:25
Hallo Manfred,

ich schlage Dir nun folgende Methode vor :
Public Sub SpeichernMitvoreingestelltemVerzeichnis()
Dim v As Variant
Dim strNameVorname As String
strNameVorname = Range("J1")

ChDrive ("v:")
ChDir ("V:\Projekte\PAS\PAS-02b\")

v = Application.GetSaveAsFilename _
("Test-Ergebniss " & strNameVorname & ".xls", "Excel-Mappen (*.xls),*.xl*", 1, _
"640 Test Ergebnisse")

If Not (v = False) Then
ThisWorkbook.SaveCopyAs v 'Kopie der Mappe speichern
Workbooks.Open v 'Kopie sofort öffnen
With Sheets(1)
.Unprotect "Hurgha"
.Shapes(1).Delete 'Button aus Kopie löschen
.Protect "Hurgha"
End With
ActiveWorkbook.Save 'Kopie erneut speichern
ActiveWorkbook.Close 'Kopie schliessen
End If
End Sub
Hart zumindest auf meinem PC ganz ordentlich geklappt !

JobCoach
19.03.2009, 07:18
Hallo Nonet,

jetzt funktioniert es einwandfrei.
Ich habe zuhause meinen PC abgeschossen, sodass ich nur im Büro online gehen kann.
Mein Dank kommt deshalb spät ,aber er kommt. Vielen Dank für deine Hilfe.

Bis dann dann

Manfred:mrcool: