Supportnet / Forum / Tabellenkalkulation
VBA neuer Name beim speichern, nicht überschreiben
Frage
Hallo!
Ich brauche Eure Hilfe.
Mein Problem: Ich möchte per VBA auf Stick bestimmte Daten haben. natürlich überschreibt er mir jedes mal, da es ja der gleiche Name ist.
Ich will das nicht und möchte im per VBA den Befehl geben, dass er mir einen neuen Namen eingibt oder den alten Namen umschreibt. Ich habe Office 97.
Für Eure Antworten danke ich Euch jetzt schon.
so sieht es bisher aus:
Sub USBspeichern()
´
´ USBspeichern Makro
´ Makro am 17.03.2005 von WE7015 aufgezeichnet
´
Sheets("Leer").Select
Application.ScreenUpdating = False
Sheets("Auswertung").Copy
ChDir "B:\"
ActiveWorkbook.SaveAs Filename:="B:\Daten.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Sheets("Maske").Select
Application.ScreenUpdating = True
End Sub
Mir geht es um den Namen Daten.
Vielleicht durch anhängen einer 1,2,3 u.s.w.
oder ähnliches.
Antwort 1 von Saarbauer
Hallo,
wie das mit dem Speichern geht kann ich dir zwar nicht sagen, da ich es noch nicht benötigt habe, aber ein Vorschlag zu abspeichern möchte ich dir machen.
Speichere deite Daten mit dem Tagesdatum ab, denn dann hast du keine Probleme mit der Nummerierung.
Das Tagesdatum würde ich in der Form nutzen JahrMonatTag, falls erforderlich noch die Uhrzeit dranhängen. Damit ist jede Datei eindeutig und jederzeit wiederzufinden.
Gruß
Helmut
wie das mit dem Speichern geht kann ich dir zwar nicht sagen, da ich es noch nicht benötigt habe, aber ein Vorschlag zu abspeichern möchte ich dir machen.
Speichere deite Daten mit dem Tagesdatum ab, denn dann hast du keine Probleme mit der Nummerierung.
Das Tagesdatum würde ich in der Form nutzen JahrMonatTag, falls erforderlich noch die Uhrzeit dranhängen. Damit ist jede Datei eindeutig und jederzeit wiederzufinden.
Gruß
Helmut
Antwort 2 von martl
Hallo,
also, wenn Du das mit dem Datum, wie von Helmut beschrieben machen möchtest, dann hätte ich Dir folgenden Vorschlag:
Sub USBspeichern()
´ USBspeichern Makro
´ Makro am 17.03.2005 von WE7015 aufgezeichnet
Dim Datum, Tag, Monat, Jahr As String
Dim Uhrzeit As Date
Tag = Format(Day(Date), "00")
Monat = Format(Month(Date), "00")
Jahr = Format(Year(Date), "0000")
Uhrzeit = Format((Time), "hh:mm:ss")
Datum = Jahr & Monat & Tag & " " & Uhrzeit & " "
´Dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls")
Dateiname = Datum & "Daten.xls"
Sheets("Leer").Select
Application.ScreenUpdating = False
Sheets("Auswertung").Copy
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\VBATest\" & Dateiname, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Sheets("Maske").Select
Application.ScreenUpdating = True
End Sub
Du kannst auch die Variante mit der Abfrage verwenden, dann musst Du nur das ´ vor der Zeile ´Dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls") entfernen und in der nächsten Zeile dafür vorne einfügen.
Viele Grüße und viel Erfolg
martl
also, wenn Du das mit dem Datum, wie von Helmut beschrieben machen möchtest, dann hätte ich Dir folgenden Vorschlag:
Sub USBspeichern()
´ USBspeichern Makro
´ Makro am 17.03.2005 von WE7015 aufgezeichnet
Dim Datum, Tag, Monat, Jahr As String
Dim Uhrzeit As Date
Tag = Format(Day(Date), "00")
Monat = Format(Month(Date), "00")
Jahr = Format(Year(Date), "0000")
Uhrzeit = Format((Time), "hh:mm:ss")
Datum = Jahr & Monat & Tag & " " & Uhrzeit & " "
´Dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls")
Dateiname = Datum & "Daten.xls"
Sheets("Leer").Select
Application.ScreenUpdating = False
Sheets("Auswertung").Copy
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\VBATest\" & Dateiname, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Sheets("Maske").Select
Application.ScreenUpdating = True
End Sub
Du kannst auch die Variante mit der Abfrage verwenden, dann musst Du nur das ´ vor der Zeile ´Dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls") entfernen und in der nächsten Zeile dafür vorne einfügen.
Viele Grüße und viel Erfolg
martl
Antwort 3 von martl
Hi,
der Laufwerksbuchstabe und der Speicherort wurden von mir zum Testen geändert - nicht wundern wenns daher nicht gleich funktioniert.. ;) - der Richtigkeit halber:
ChDir "B:\"
ActiveWorkbook.SaveAs Filename:="B:\" & Dateiname, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Grüßle
Martin
der Laufwerksbuchstabe und der Speicherort wurden von mir zum Testen geändert - nicht wundern wenns daher nicht gleich funktioniert.. ;) - der Richtigkeit halber:
ChDir "B:\"
ActiveWorkbook.SaveAs Filename:="B:\" & Dateiname, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Grüßle
Martin
Antwort 4 von Völdi
Hallo Helmut!
Hallo Martin!
Vielen Dank für Eure Hilfe, Ihr habt mir sehr geholfen
Gruß
Völdi
Hallo Martin!
Vielen Dank für Eure Hilfe, Ihr habt mir sehr geholfen
Gruß
Völdi
Antwort 5 von Mr.Fry
Hallo Leute,
ich hab nun folgendes Problem. Ich hab mir hier eine (wohlwissend NICHT funktionsfähige ;)) Schleife, kann mir jemand sagen wie ich die Variable "Name" als Dateinamen benutzen kann?
Wie gesagt, ich arbeite zum ersten Mal mit Makros und hab sonst auch nur minimalste Programmierkenntnisse..
Ich möchte dass er statt ´001dat-TCD - Channel A.esd´ die oben deklarierte Variable "Name" nimmt, also er dort immer den Dateinamen der Schleife nimmt. Wie baut man die Variable ein? Ich konnte leider in der Hilfe nix finden :-/
Ich hoffe ihr könnt mir weiterhelfen!
Danke, Gruß
ich hab nun folgendes Problem. Ich hab mir hier eine (wohlwissend NICHT funktionsfähige ;)) Schleife, kann mir jemand sagen wie ich die Variable "Name" als Dateinamen benutzen kann?
For n = 1 To 30
n = String(3 - Len(n), "0") & n
Name = n & "dat-TCD - Channel A.esd"
ActiveCell.FormulaR1C1 = "=´001dat-TCD - Channel A.esd´!R9C4"
Range("C4").Select
Next
Wie gesagt, ich arbeite zum ersten Mal mit Makros und hab sonst auch nur minimalste Programmierkenntnisse..
Ich möchte dass er statt ´001dat-TCD - Channel A.esd´ die oben deklarierte Variable "Name" nimmt, also er dort immer den Dateinamen der Schleife nimmt. Wie baut man die Variable ein? Ich konnte leider in der Hilfe nix finden :-/
Ich hoffe ihr könnt mir weiterhelfen!
Danke, Gruß
Antwort 6 von Mr.Fry
Sorry, falscher Thread *rotwerd*
https://supportnet.de/threads/1173582
Da sollte das rein, ist es nu auch ;)
https://supportnet.de/threads/1173582
Da sollte das rein, ist es nu auch ;)