1.1k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo Gemeinde
ich hab da einen Wunsch. Ich würde gerne den Inhalt einer Zelle; z.B. 7256; als Dateinamen verwenden. Beim Speichern soll dann gleich ein A an den Namen gehängt werden, also dann komplett 7256A.xlsx . Sollte irgendwann unter dieser Nummer nochmals eine neue Datei gespeichert werden (geht an gleicher Stelle ja nicht), soll das A durch ein B ausgetauscht werden. Dies so lange, bis das ABC durch ist.
Kann mir dabei jemand helfen?
Ich bin so überhaupt nicht fit mit Makros. Aber einen Button, der den Speichervorgang auslösen soll, hab ich dann doch schon.

Vielen Dank vorab

1 Antwort

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Namenloser!

nachfolgendes Makro sollte das machen, was Du Dir vorgestellt hast. Kopiere das Makro in ein StandardModul und starte es über Deine Schaltfläche.

Option Explicit

Sub Datei_Save()
Dim strVerzeichnis As String
Dim strZusatz As String
Dim Dateityp$
Dim bolDat As Boolean

'Hier das Verzeichnis angeben, in das die Dateien _
abgespeichert werden sollen
strVerzeichnis = "C:\tmp\"

Dateityp = Dir(strVerzeichnis & "*.xlsx")
Do While Dateityp <> ""
If Dateityp = Range("A1") & "C.xlsx" Then
bolDat = True
ElseIf Dateityp = Range("A1") & "B.xlsx" Then
strZusatz = "C"
ElseIf Dateityp = Range("A1") & "A.xlsx" Then
strZusatz = "B"
Else
strZusatz = "A"
End If
Dateityp = Dir
Loop

If bolDat = False Then
ActiveWorkbook.SaveAs (strVerzeichnis & Range("A1") & strZusatz & ".xlsx")
Else
MsgBox "Alle Speicherkombinationen für die Datei bereits aufgebraucht!", vbInformation, "Abbruch..."
End If
End Sub

Du muss in der Zeile „strVerzeichnis = "C:\tmp\" noch den Pfad zwischen die beiden Anführungsstriche ändern (Achtung! Anführungszeichen müssen stehen bleiben).
Sollte bei Dir der Dateiname in einer anderen Zelle als A1 stehen, dann die Zellenangabe in dem Makro ebenfalls ändern.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
...