Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
420to424
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
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Speichern in Ordner per VBA

Speichern in Ordner per VBA
02.05.2004 13:38:42
Herbert
Schönen Sonntag allerseits
Ich habe einen Ordner mit Namen 2004 (aktuelle Jahreszahl) dieser wird jeweils zum Jahresanfang automatisch erstellt.
ich will nun meine Datein in diesen speichern
(Dateinamen: fortlaufende Nr und Jahr z.B. 002 04.xls)

Sub speichern()
Dim nr, jahr, jahreszahl, stdPfad
jahreszahl = Year(Now)
stdPfad = "C:\Temp\" & jahreszahl
spname = Range("Nummer").Value          'Wert der Zelle in Variable einlesen
nr = Mid(spname, 1, 3)               'Erste 3 Zeichen in Varilable einlesen
jahr = Mid(spname, 5, 2)             'letzte 2 Zeichen
ActiveWorkbook.SaveAs Filename:=stdPfad & nr & " " & jahr
End Sub

Ergebnis: eine Datei mit Namen 2004002 04.xls im Verzeichnis C:\Temp.
In der Variable jahreszahl ist abder der richtige Pfad abgelegt und ich finde den Fehler nicht.
Bin ich blind oder liegt es am Sonntag??????
Danke für Eure Hilfe im vorraus
Gruß Herbert

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern in Ordner per VBA
02.05.2004 13:44:01
NE
Hi Herbert,
wenn ich das richtig lese:
stdPfad = "C:\Temp\" & jahreszahl
speicherst Du ja unter c:\temp ?? ;;-))
lg Nancy
AW: Speichern in Ordner per VBA
02.05.2004 13:56:54
ypsilon
hi Herbert,
dir fehlt eigentlich nur ein backslash zum glücklich werden
stdPfad = "C:\Temp\" & jahreszahl & "\"
es geht aber glaub ich auch so:

Sub speichern()
ActiveWorkbook.SaveAs Filename:="c:\temp\" & Format(Date, "YYYY") & "\" & Mid(Range("Nummer").Value, 1, 3) & " " & Format(Date, "YY")
End Sub

cu Micha
AW: Speichern in Ordner per VBA Fehler gefunden
02.05.2004 14:02:14
Herbert
Sorry
Es liegt am Sonntag!!! ;.)
ActiveWorkbook.SaveAs Filename:=stdPfad & "\" & nr & " " & jahr
Ein Backslash und schon funzt es.
Herbert
Anzeige
Ergänzung zum Speichern
02.05.2004 14:16:00
Herbert
Danke Euch allen
C:\Temp ist nur zum ausprobieren, der Pfad wird dann angepaßt.
Das Ganze ist ein Ausschnitt aus einer komplexen Anwendung:
Formulat.xlt öffnen, ausfüllen.
Drucken, speichern per Makro.
Jetzt bin ich aber mit meinem VBA am Ende:
Wie fang ich es auf, wenn der Dateiname schon vergeben ist?
Nach meiner Zeile mit dem "fehlenden Backslash" kommt noch:
ActiveWorkbook.SaveAs stdPfad & "\" & nr & " " & jahr
ActiveWorkbook.Close
MsgBox "Das Formular " & nr & "/" & jahr & " wurde gedruckt und gespeichert"
Ist Die Datei vorhanden, kommt die Standardabfrage, ob ich die bestehende Datei überschreiben will. Klicke ich auf nein, kommt die Abfrage Formular1.xls speichern. Dort auf nein, wird die Datei geschlossen. und meine Msgbox kommt.
Wo muß ich ansetzen, um nach der Feststellung - Dateiname ist vorhanden in mein ausgefülltes Formular zurückzukehren , um die Nummer (sprich Dateinamen) ändern zu können?
Gruß Herbert (hoffe es ist verständlich geschrieben)
Anzeige
AW: Ergänzung zum Speichern
02.05.2004 14:38:28
Nepumuk
Hallo Hebert,
frag einfach vor dem speichern ab, ob die Datei schon vorhanden ist. Z.B. mit:
Dir(stdPfad & "\" & nr & " " & jahr & ".xls")
Gruß
Nepumuk
AW: Ergänzung zum Speichern
02.05.2004 14:46:23
Herbert
Hallo Nepumuk
Danke Dir, hab in der Recherche eine code gefunden und abgeändert, bekomme aber auch nach dem Ändern des Dateinamens die Meldung "Auftragsnummer schon vergeben"

If stdPfad & "\" & nr & " " & jahr = "" Then
ActiveWorkbook.SaveAs stdPfad & "\" & nr & " " & jahr
ActiveWorkbook.Close
MsgBox "Das Formular " & nr & "/" & jahr & " wurde gedruckt und gespeichert"
Else
MsgBox "Aufragsnummer ist schon vorhanden!"
Exit Sub
End If
Kannst Du mir nochmal helfen?
Gruß Herbert
Anzeige
AW: Ergänzung zum Speichern
02.05.2004 14:55:49
Nepumuk
Hallo Herbert,
versuch es so:


If Dir(stdPfad & "\" & nr & " " & jahr & ".xls") = "" Then
    ActiveWorkbook.SaveAs stdPfad & "\" & nr & " " & jahr
    ActiveWorkbook.Close
    MsgBox "Das Formular " & nr & "/" & jahr & " wurde gedruckt und gespeichert"
Else
    MsgBox "Aufragsnummer ist schon vorhanden!"
    Exit Sub
End If

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß
Nepumuk
Anzeige
AW: Ergänzung zum Speichern
02.05.2004 14:40:22
ypsilon
hi Herbert,
auch wenn du nix zu meinem anderen vorschlag gesagt hast :-(
kann dein problem (wenn ich dich richtig verstanden habe) nach dem folgenden Muster abgehandelt werden:

If Dir(DeinDateiName) = "" Then
ActiveWorkbook.SaveAs Filename:=DeinDateiName
Else
Stop 'dein sonstiger code eventuell exit Sub
End If
cu Micha
AW: Ergänzung zum Speichern
02.05.2004 14:49:27
Herbert
Hi Micha
Sorry, war mitten im Ausprobieren, Hab gerade auf Nepumuk geantwortet, der auch Deinen Ansatz verfolgt, aber irgendwie funzt das noch nicht. Wenn Du Zeit hast, schau Dir bitte meinen Code in der vorherigen Antwort an, vielleicht weißt Du ne´Lösung.
Gruß Herbert
Anzeige
AW: Ergänzung zum Speichern
02.05.2004 14:53:04
ypsilon
hi Herbert,
achte doch einfach mal genau auf die schreibweise also in diesem fall auf das zusäzliche & ".xls"
das hatte dir Nepumuk auch schon eingebaut !
If Dir(DeinDateiName & ".xls") = "" Then
ActiveWorkbook.SaveAs Filename:=DeinDateiName
Else
Stop 'dein sonstiger code eventuell exit Sub
End If
cu Micha
Jetzt klapps!!! Vielen Dank Euch allen o.T.
02.05.2004 15:03:36
Herbert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge