Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Speichern unter und automatisches Verschieben - Makro
#1
Hallo zusammen,

ich versuche gerade ein Antragsformular zu erstellen.

Im ersten Step soll das Formular einen Button bekommen, der das Formular mit bestimmten Inhalten aus Zellen an einem bestimmten Ort speicher.
Das habe ich bisher hinbekommen. Nur speichert er noch oberhalb meines angebenen Ordners, jemand eine Idee woran das liegen kann?

Sub Speichern_unter()

Dim Datei As String
Dim Verzeichnis As String
Dim SaveDummy As Variant

Verzeichnis = "X:\Werkzeugantrag\offene Anträge" 'Verzeichnis-Vorschlag
Datei = "Werkzeugantrag" & "_" & Range("K3") & "_" & Range("B3") & "_" & Format(Date, "_dd_mm_yy") & ".xls"  'Datei-Vorschlag
SaveDummy = SpeichernUnter(Datei)
If SaveDummy <> False Then ActiveWorkbook.SaveAs SaveDummy 'Es wurde im Dialog auf Speichern gedrückt

End Sub



Function SpeichernUnter(VorgabeName As String) As Variant

SpeichernUnter = Application.GetSaveAsFilename(InitialFileName:=VorgabeName, Filefilter:="Excel Dateien (*.xls),*.xls*", _
FilterIndex:=1, Title:="Speichern unter...", ButtonText:="speichern")

End Function


Als zweiter Step möchte ich Makro integrieren, das einen geschlossenen Antrag automatisch vom Ordner "offene Anträge" in den Ordner "geschlossene Anträge" verschiebt. Ist sowas möglich?

Vielen Dank für eure Tipps!

Grüße Lars
Antworten Top
#2
HI

Zitat:Als zweiter Step möchte ich Makro integrieren, das einen geschlossenen Antrag automatisch vom Ordner "offene Anträge" in den Ordner "geschlossene Anträge" verschiebt. Ist sowas möglich?

Ja, ist möglich und die Datei MUSS geschlossen sein sonst kann diese ja gar nicht verschoben werden!

Code:
Option Explicit

Sub Move_File()
    Dim strSourceFile As String, StrTarget As String, FSO As Object
    strSourceFile = "C:\Temp\xyz.xlsx"
    If Dir(strSourceFile) = "" Then
        MsgBox "Keine Datei" & Chr(10) & strSourceFile & Chr(10) & "vorhanden!"
    Else
        StrTarget = "C:\Temp1\" 'sollte vorhanden sein!
        Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.MoveFile strSourceFile, StrTarget
        Set FSO = Nothing
    End If
End Sub
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#3
Morgen,

danke für deine Antwort.

Ich habe es getestet, hatte aber keine Funktion. Bin jetzt leider nicht so fit in VB.


Code:
strSourceFile = "C:\Temp\xyz.xlsx"

Hier muss die aktuelle Datei stehen?

Code:
    If Dir(strSourceFile) = "" Then
Hier muss die Zeile zum Auslösen stehen?


Code:
StrTarget = "C:\Temp1\" 'sollte vorhanden sein!
Und hier der Zielordner?
Zitat:Datei MUSS geschlossen sein sonst kann diese ja gar nicht verschoben werden!

D.H. ? Die Tabelle verschiebt sich erst nach schließen der Datei?

Danke für deine Hilfe!
Antworten Top
#4
Hi,

anbei ein wenig dokumentiert

Code:
Sub Move_File()
    Dim strSourceFile As String, StrTarget As String, FSO As Object
    'Pfad und Name der Datei die verschoben werden sollte (Quelle)
    strSourceFile = "C:\Temp\xyz.xlsx"
    
    'wenn diese Datei nicht vorhanden ist dann kommt die Meldung das die Datei nicht vorhanden ist
    If Dir(strSourceFile) = "" Then
        MsgBox "Keine Datei" & Chr(10) & strSourceFile & Chr(10) & "vorhanden!"
    Else
        'ansonsten
        'ZielPfad der sollte auch vorhanden sein...
        StrTarget = "C:\Temp1\"
        Set FSO = CreateObject("Scripting.FileSystemObject")
        'verschiebe die Quelle ins Ziel
        'NUR SOLLTE DIE DATEI(Quelle) AUCH GESCHLOSSEN SEIN DIE VERSCHOBEN WIRD:)
        'sonst kann ja nicht verschoben werden
        FSO.MoveFile strSourceFile, StrTarget
        Set FSO = Nothing
    End If
End Sub

Bei mir tauchen auch immer mehr Fragen auf :)

Nur wenn du das mit deinem ersten Teil koppeln willst...
Warum wird der Dialog Speichern Unter genutzt?
Warum wird zwar die Variable Verzeichnis angelegt, aber dann wird diese nicht weiter verwendet...
Warum überhaupt zuerst was speichern und dann verschieben, warum nicht gleich dort abspeichern?
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#5
Zitat:Warum wird der Dialog Speichern Unter genutzt?

Ich habe eine Vorlage für ein Formular, das von mehreren Personen genutzt werden soll und immer in der selben Weise bezeichnet werden soll. Dieses soll das in einem Ordner "offene Anträge" gespeichert werden.
Zitat:Warum wird zwar die Variable Verzeichnis angelegt, aber dann wird diese nicht weiter verwendet...
In wiefern wird es nicht genutzt?
Zitat:Warum überhaupt zuerst was speichern und dann verschieben, warum nicht gleich dort abspeichern?

Wenn der Antrag genehmigt (und somit geschlossen) wird, soll der Antrag automatisch von "offene Anträge" zu "geschlossene Anträge" verschoben werden. Ist für mich nur eine Frage der Ordnung (ja, ich traue meinen Kollegen nicht zu, diesen Antrag händisch zu verschieben).
Antworten Top
#6
Hallo zusammen,

so selber jetzt zwei Wochen keine Zeit gehabt.

Hat jemand noch eine Idee und kann mir weiterhelfen?

Danke!
Antworten Top
#7
Hallöchen,

Wie wird der Dialog Speichern Unter genutzt?
… der Öffnen, z.B. einfache codevariante

strSourceFile = Application.GetOpenFilename()

Dim Verzeichnis
… ist unnütz, wenn Du sie im weiteren Codeverlauf nicht verwendest
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste