Excel-Datei doppelt speichern

Dieses Thema im Forum "Office-Programme" wurde erstellt von Amt14, 10. Oktober 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Amt14

    Amt14 Kbyte

    Registriert seit:
    5. Juni 2003
    Beiträge:
    220
    Hallo zusammen,

    weiß jemand einen Weg, wie ich Excel dazu bringen kann, dass es eine Datei gleichzeitig an zwei verschiedenen Orten speichert?
    Hintergrund der Angelegenheit ist, dass ich einen Vordruck habe, den ich ungefähr 100x mit jeweils einem anderen Namen und anderen Daten an zwei verschiedenen Orten im Netzwerk speichern muss. Wenn ich die Speicherprozedur mit einem Makro aufzeichne, haut das nicht hin, da ich das Makro in jeder Datei (wegen des anderen Namens) jedesmal ändern oder das Makro ganz neu aufzeichnen muss.
    Wenn jemand eine Lösung hätte, wäre das super!

    Wolfgang
     
  2. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Hi

    Das Abspeichern als Makro aufzeichnen - allerdings bei
    'speichern in'
    im dropdown des Dialogs
    'Persönliche Makroarbeitsmappe'
    auswählen.

    Der Makro steht damm immer (dem aktuellenn Benutzer ) zur Verfügungng - für das Aufrufen kann man einen eigenen Button in eine Symbolleiste installieren und mit diesem Makro verknüpfen.

    HTH
    G.
     
  3. Amt14

    Amt14 Kbyte

    Registriert seit:
    5. Juni 2003
    Beiträge:
    220
    Hab ich ja gemacht, Das Problem ist dabei nur, dass der Name der Datei im Makro mit gespeichert wird und ich vor jedem weiteren Abspeichern des Vordrucks unter einem anderen Namen ich den Namen im aufgezeichneten Makro manuell ändern muss, weil der Vordruck sonst jedesmal unter dem Namen, der bei der Aufzeichnung des Makros angegeben war, gespeichert wird.

    Wolfgang
     
  4. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Hi

    Den Dateinamen vorher mit dem ensprechen Systemdialog eingeben:

    Sub speichern()
    datei = Application.GetSaveAsFilename(InitialFileName:="", Filefilter:="Excel Dateien (*.xl*),*.xl*,Alle Dateien (*.*),*.*")
    If dateiname <> "Falsch" Then
    ActiveWorkbook.SaveAs Filename:=datei, FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False
    End If
    End Sub

    HTH
    G.
     
  5. Amt14

    Amt14 Kbyte

    Registriert seit:
    5. Juni 2003
    Beiträge:
    220
    Hi,

    Vielen Dank, aber leider verstehe ich von VBA-Programmierung wenig bis gar nichts. Vielleicht kannst Du mir helfen, mein Makro mit Deinem zu verbinden. Mein Makro sieht folgendermaßen aus:

    Sub Speichern_auf_R_und_U()
    '
    ' Speichern_auf_R_und_U Makro
    ' Makro am 11.10.2005 von wolfgang.doerflein aufgezeichnet
    '

    '
    ChDir "R:\Excel\Kassenprüfungen\Fertige Berichte\14-3\2005"
    ActiveWorkbook.SaveAs Filename:= _
    "R:\Excel\Kassenprüfungen\Fertige Berichte\14-3\2005\Zahlstellen.xls", _
    FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    ChDir "U:\Excel\Kassenprüfungen\Fertige Berichte\2005"
    ActiveWorkbook.SaveAs Filename:= _
    "U:\Excel\Kassenprüfungen\Fertige Berichte\2005\Zahlstellen.xls", FileFormat _
    :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
    False, CreateBackup:=False
    End Sub

    Meine Vorlagendatei heißt Zahlstellen.xls;
    Gespeichert werden soll sie in den Verzeichnissen:
    a) R:\Excel\Kassenprüfungen\Fertige Berichte\14-3\2005
    b) U:\Excel\Kassenprüfungen\Fertige Berichte\2005

    Wäre nett von Dir.

    Wolfgang
     
  6. Amt14

    Amt14 Kbyte

    Registriert seit:
    5. Juni 2003
    Beiträge:
    220
    Nachtrag:

    Wenn ich ausschließlich Dein Makro verwende, bekomme ich immer eine Fehlermeldung; ist Dir ein Schreibfehler unterlaufen?

    Wolfgang
     

    Anhänge:

  7. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Hi

    Leider kann ich die Fehlermeldung nicht anzeigen lassen ( PC-Welt behauptet ich sei nicht angemeldet - obwohl ich posten kann )

    Vielleicht liegt der Fehler darin , daß die Zeile

    datei = Application.GetSaveAsFilename(InitialFileName:="", Filefilter:="Excel Dateien (*.xl*),*.xl*,Alle Dateien (*.*),*.*")

    fehlerhaft umgebrochen wird.
    Alles gehört in eine Zeile!

    Der Makro wurde ( nach Test ) so aus dem VBA-Editor kopiert.

    Ich fürchte allerdings, daß der Makro das Problem nicht lösen wird.

    Wenn ich es recht verstehe, soll die Datei in zwei Verzeichnisssen parallel gespeichert werden.
    Soll dabei der Dateiname gleich bleiben - die bisherige Kopie also überschreiben?

    Gruß
    G.
     
  8. Amt14

    Amt14 Kbyte

    Registriert seit:
    5. Juni 2003
    Beiträge:
    220
    Hi,

    Die Zeile wurde im Makro nicht umgebrochen.

    Die Fehlermeldung lautet:
    "Laufzeitfehler '1004'
    Auf die Datei konnte nicht zugegriffen werden. Versuchen Sie folgende Lösungsvorschläge:
    Überprüfen Sie, ob der angegebene Ordner existiert,
    Stellen Sie sicher, dass der Ordner, in dem sich die Datei befindet, nicht schreibgeschützt ist,
    Vergewissern Sie sich, dass der Dateiname keines der folgenden Zeichen enthält: < > ? [ ] : | oder *
    Der Dateiname darf nicht länger sein als 218 Zeichen."
    Dann habe ich die Möglichkeit zu beenden oder zu debuggen.
    Alle 4 angeführten Fehlerquellen treffen nicht zu.

    Die Ausgangsdatei, also der Vordruck zahlstellen.xlt, wird für jede der ca. 100 Zahlstellen entsprechend den dort vorliegenden finanziellen Verhältnissen individuell ausgefüllt und dann unter dem Namen der jeweiligen Zahlstelle in den beiden o.g. Verzeichnissen auf den Laufwerken R: und U: abgespeichert, also unter identischem Namen aber an zwei verschiedenen Stellen.

    Wolfgang
     
  9. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Seltsam

    Auf dem Rechner, an dem ich jetzt sitze, macht er das auch.
    ( Excel hängt intern noch ein .xl* an den Dateinamen und macht ihn damit ungültig )

    So funktioniert es aber ( auch auf diesem Rechner ):

    Sub speichern()
    dateiname = Application.GetSaveAsFilename(InitialFileName:="", Filefilter:="Excel Dateien (*.xls),*.xl?,Alle Dateien (*.*),*.*")
    If dateiname <> "Falsch" Then
    On Error GoTo exsub
    ActiveWorkbook.SaveAs Filename:=dateiname, FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False
    End If
    Exit Sub
    exsub:
    End Sub

    Das on error goto vehindert eine Fehlermeldung, wenn man beim Versuch eine Datei zu überschreiben, das procedere abbricht.

    Gruß
    G.
     
  10. Amt14

    Amt14 Kbyte

    Registriert seit:
    5. Juni 2003
    Beiträge:
    220
    Hi,

    das Makro funktioniert!
    Gibt es auch eine Möglichkeit, dass ich beide Speicherungen in einem Rutsch vornehme? Nachdem ich mit dem Makro in das voreingestellte Laufwerk U: komme, habe ich folgendes versucht, aber das haut nicht hin:

    Sub speichern()
    dateiname = Application.GetSaveAsFilename(InitialFileName:="", Filefilter:="Excel Dateien (*.xls),*.xl?,Alle Dateien (*.*),*.*")
    If dateiname <> "Falsch" Then
    On Error GoTo exsub
    ActiveWorkbook.SaveAs Filename:=dateiname, FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False
    ChDir "R:\Excel\Kassenprüfungen\Fertige Berichte\14-3\2005"
    ActiveWorkbook.SaveAs Filename:=dateiname, FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False

    End If
    Exit Sub
    exsub:
    End Sub

    Wolfgang
     
  11. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Hi

    Wenn es darum geht die Datei mit frei wählbarem Namen in zwei festglegten Pfaden zu speichern, würde ich allerdings nicht den 'Speicher als' Dialog verwenden.

    Einfacher wäre dann:

    Sub speichern()
    p1 = "R:\Excel\Kassenprüfungen\Fertige Berichte\14-3\2005\"
    p2 = "U:\Excel\Kassenprüfungen\Fertige Berichte\2005"
    dateiname = Application.InputBox("Dateiname", "Speichern unter", "")

    If dateiname <> "" Then
    If UCase(Right(dateiname, 4)) <> ".xls" Then dateiname = dateiname + ".xls"
    On Error GoTo exsub
    ActiveWorkbook.SaveAs Filename:=p1 + dateiname, FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False
    ActiveWorkbook.SaveAs Filename:=p2 + dateiname, FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False
    End If
    Exit Sub
    exsub:
    End Sub

    Der Dateiname wird in der Inputbox eingegeben, ggF um '.xls' erweitert un in Pfaden p1 und p2 gespeichert.

    Hier mit anderen Pfadangaben erfolgreich getestet.

    HTH
    G.
     
  12. Amt14

    Amt14 Kbyte

    Registriert seit:
    5. Juni 2003
    Beiträge:
    220
    Hi,

    funktioniert bestens!
    Heißen Dank!

    Wolfgang
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen