Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datei mit spez. Dateiname abspeichern

Datei mit spez. Dateiname abspeichern
17.08.2007 14:53:38
Rainer
hallo liebe Leute
ich habe in meinem Masterfile folgenden code:
ich bin schon seit längerem am rumpröbeln und den Code des aufgezeichneten Makros am abändern, aber irgendwie verstrick ich mich immer bei der Geschichte. Ich bin mir aber sicher, dass das was ich eigentlich machen will, gehen muss.
mein code ist folgender:

Sub Test()
Sheets("Pfade Originaldateien").Select
ChDir Range("C11")
Workbooks.Open Filename:=Range("B11")
Windows("Tool_Master.xls").Activate
Sheets("Pfade Originaldateien").Select
ChDir Range("C12")
Windows("TOTAL_Kundenklassifikation.xls").Activate
ActiveWorkbook.SaveAs Filename:=Range("B12")
ActiveWindow.Close
Sheets("Eingabe Maske").Select
End Sub


Beim Speichern des Files soll der Dateiname und Pfad aus den Zellen B12 und C12 gezogen werden. Dieser Pfad liegt aber im File Master.xls (das auch das Tabellenblatt "Pfade Originaldateien" enthält).
das abpeichern klappt so natürlich nicht, das der Pfad aus dem File Kundenklassifikation gezogen wird.
Das kann man schon mit der Funktion SaveAs machen? ich habe in der Suche leider nichts ausser activeWorkbook.saveAs gefunden.
Würde mich über Hilfe freuen
Liebe Grüsse
Rainer

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei mit spez. Dateiname abspeichern
17.08.2007 15:23:00
Ramses
Hallo
ich kann dir da schon was machen. allerdings ist mir der Aufbau der Tabelle "Originalpfade" schleierhaft und deine Erklärung trägt auch nicht dazu bei :-)
Kannst du die Datei oder einen Ausschnitt mal hochladen ?
Gruss rainer

AW: Datei mit spez. Dateiname abspeichern
17.08.2007 15:48:46
Rainer
sicher mach ich das
ich hab dir hier grad ein file bereitgestellt, da das originalfile zu gross ist. aber ich kanns ja dann abändern.
http://www.uploadagent.de/files/1187358233/Tool_Master.xls
Nochmals was geschehen sollte:
Das Masterfile öffnet die Quelldatei, indem es in der Zelle schauen geht wo diese liegt und wie sie heisst. Dann speichert es diese im Zielpfad mit Zielname ab. Diese Angaben werden auch aus der Zelle gelesen.
ich möchte es so aufbauen, weil ich dann mühsames Pfad ändern umgehen kann. Ich möchte alle Pfade in dieses Tabellenblatt verlagern.
Zudem sollte das Zielfile, im Falle, dass es bereits besteht, überschrieben werden.
Besten Dank Rainer!
gruss
rainer

Anzeige
AW: Datei mit spez. Dateiname abspeichern
17.08.2007 15:53:17
Ramses
Hallo
ist da nur EINE Datei drin, oder sind das mehrere Dateien die da hin und herkopiert werden sollen ?
Gruss Rainer

AW: Datei mit spez. Dateiname abspeichern
17.08.2007 15:54:52
Rainer
es soll lediglich die Datei, welche ich im Zielpfad angegeben habe geöffnet werden und unter neuem namen abgespeichert werden.
keine rumschieberei ;-)

AW: Datei mit spez. Dateiname abspeichern
17.08.2007 16:14:00
Ramses
Hallo
dann probier das mal aus
Bitte vorsichtig :-),... ich habe es nicht getestet
Option Explicit

Sub Test_Save()
    Dim qWkb As Workbook, tarWkb As Workbook
    Dim qWks As Worksheet, tarWks As Worksheet
    Dim qPath As String, qName As String, savePath As String, saveName As String
    On Error GoTo Error_Correction
    'Die Quelle ist "Tool_Master.xls", also
    'die aktuelle Mappe !!
    Set qWkb = ActiveWorkbook
    Set qWks = qWkb.Sheets("Pfade Originaldateien")
    With qWks
        qPath = .Range("B5")
        qName = .Range("C5")
        savePath = .Range("B6")
        saveName = .Range("C6")
    End With
    'Auf Backslasch am Pfadende prüfen
    If Left(qPath, 1) <> "\" Then
        qPath = qPath & "\"
    End If
    If Left(savePath, 1) <> "\" Then
        savePath = savePath & "\"
    End If
    'Eventuell Laufwerk wechseln
    'ChDrive Left(savePath, 1)
    ChDir savePath
    'Prüfung auf unerlaubte Zeichen im Dateinamen
    If CheckSaveName(qName) = False Then Exit Sub
    'Zielmappe öffnen und Object Zuweisung
    Set tarWkb = Workbooks.Open(qPath & qName)
    With tarWkb
        Application.DisplayAlerts = False
        .SaveAs savePath & saveName
        Application.DisplayAlerts = True
        .Close
    End With
    Sheets("Eingabe Maske").Select
    Error_Exit:
    Exit Sub
    
    Error_Correction:
    Select Case Err
        Case 68
            'Fehlendes Laufwerk
            MsgBox ("Das Gerät/Laufwerk das Sie angegeben haben existiert nicht")
            Resume Error_Exit
        Case 76
            'Fehlender Pfad
            MsgBox ("Der Pfad den Sie angegeben haben existiert nicht")
            Resume Error_Exit
        Case Else
            MsgBox "" & Chr$(13) & Err & " :" & Err.Description, vbCritical + vbOKOnly, "Unerwarteter Fehler"
            Resume Error_Exit
    End Select
End Sub


Function CheckSaveName(chkName As String) As Boolean
    '(C) Ramses
    'Prüft auf unerlaubte Zeichen im Dateinamen
    'Wenn unerlaubte Zeichen vorhanden dann FALSE
    Dim i As Integer
    For i = 1 To Len(chkName)
        Select Case Mid(chkName, i, 1)
            Case "\", "/", ">", "<", ":", "*", "?", "[", "]", "¦"
                MsgBox ("Unerlaubtes Zeichen """ & Mid(chkName, i, 1) & """ an Position " & i & " in " _
                & """" & chkName & """" & vbCrLf _
                & vbCrLf & "Speichervorgang wegen Fehler in Dateinamen abgebrochen")
                CheckSaveName = False
                Exit Function
        End Select
    Next i
    CheckSaveName = True
End Function

Gruss Rainer

Anzeige
AW: Datei mit spez. Dateiname abspeichern
17.08.2007 16:47:18
Rainer
boaaah!
das ist ja derbe was du hier schnell zusammenprogrammiert hast. ich wünsche ich könnte das auch ;-) und vorallem sauber - an sachen wie laufwerkwechsel (obwohl das hier in diesem fall nicht stattfindet) hätte ich zum beispiel nie gedacht.
aber er hoppelt noch nicht ganz durch. er öffnet das file, führt checksafe aus und bleibt dann bei der zeile " .SaveAs savePath & saveName
" stehen, er reklamiert dass entweder falsche zeichen im dateinamen sind, oder falscher pfad etc.
dies trifft aber leider nicht zu.
ware super cool wenn du nochmals deine künste walten lasst :D
gruss
rainer

Anzeige
AW: Datei mit spez. Dateiname abspeichern
17.08.2007 17:18:00
Ramses
Hallo
"...er öffnet das file, führt checksafe aus und bleibt dann bei der zeile ..."
Kann nicht sein. Die Abfolge ist anders:
Erst prüfen, dann öffnen.
Ich muss das heute abend nochmal in Ruhe anschauen und testen.
Gruss Rainer

AW: Datei mit spez. Dateiname abspeichern
17.08.2007 17:28:48
Rainer
ja, lass dir zeit! ich bin verdammt froh gibt es leute wie dich! ist echt der hammer was ihr, aber vorallem du hier für arbeit leistet!
ich werde voraussichtlich erst am Montag wieder dazu kommen hier reinzuschauen, dann aber dafür wie immer aktiv ;-)
falls du gerade noch dabei bist, sofern du zeit findest,
ich habe noch ein anderes problemchen das aber in die gleiche Kategorie geht würd ich sagen.
da ich ja alle Pfade in Zellen ablegen möchte habe ich zuerst folgende code zeile:
Set wksZiel = Workbooks("Tool_Master.xls").Worksheets("Kundenklassifikation")
dann wollte ich das so ummodeln:
Set wksZiel = Workbooks(Range("D12").Worksheets("Kundenklassifikation"))
die schnappt er aber nicht. deshalb hab ich noch den code vornehingepflaster, damit klar sein sollte wo die Zelle D12 zu suchen ist:
Workbooks("TOTAL_Kundenklassifikation_Test.xls").Activate
Sheets("Kundenklassifikation").Select
aber das passt auch nicht...
leider bin ich bereits hier mit meinem Latein am Ende...aber ich mach täglich fortschritte :-)
Ganz herzlichen Dank nochmals.
wünsche einen schönen Abend & schönes Weekend
gruss
rainer

Anzeige
Rechts und Links verwechselt
17.08.2007 23:23:00
Ramses
Hallo
Die Fehlermeldung dass der Pfad nicht vorhanden ist, sit korrekt.
Ich habe in der Eile Links und Rechts verwechselt,.. scheint wohl das Alter zu sein :-)
So muss es korrekt sein
'Auf Backslasch am Pfadende prüfen
If Right(qPath, 1) "\" Then
qPath = qPath & "\"
End If
If Right(savePath, 1) "\" Then
savePath = savePath & "\"
End If
Du erinnerst dich an meine Rückfrage ?
":..Ist das nur die eine Datei.."
und du gesagt hast:
":...es soll lediglich die Datei, welche ich im Zielpfad angegeben habe geöffnet werden und unter neuem namen abgespeichert werden...."
Nun ist dein "Problemchen" eben genau das was ich da gefragt habe :-(
Sonst hätte ich den Code komplett anders aufgebaut.
Ausserdem ist der Aufbau deiner Tabelle dann kontraproduktiv.
Es MUSS alles "Quelle" und "*Ziel" in einer Zeile stehen !!
Alles andere ist Humbug.
Stell deine Datei entsprechend um, und schick nochmals ein Muster wie das ganze dann aussieht.
Ich bin ab Montag wieder im Geschäft und muss da zuerst nach Frankreich und anschliessend nach Bosnien.
Könnte also etwas dauern, da ich dann nur noch am Abend Zeit habe.
Gruss Rainer

Anzeige
AW: Rechts und Links verwechselt
20.08.2007 08:47:00
Rainer
Hallo Rainer
Danke für deine Hilfe. Ich habe den code angepasst und versucht das ganze nochmals zum laufen zu bringen. Er reklamiert mir aber immernoch sobald er dann zur zeile .SaveAs savePath & saveName. Ich kann mir ehrlich gesagt nicher erklären weshalb.
ich habe versucht etwas rumzutesten, indem ich wie du geschrieben hast, Quellpfad und Zielpfad auf die slbe zeile zu nehmen. Hat nicht funktioniert. Auch wenn ich ihm z.b. sage anstatt den Pfad aus path und name zusammenzusetzen (das kann ich ja auch manuell machen, hatte ich eigentlich so vorgesehen). Er sagt immer der Pfad existiere nicht.
Inwiefern war denn meine Angabe falsch, es handelt sich ja nur um ein File. Ich verstehe nicht ganz weshalb das so einen unterschied macht. Trotzdem sorry, dass ich hier die falsche Angabe machte. ich dachte mir eben, wenn ich immer nur ein file öffne und dann abspeichere...handelt es sich ja um ein file.
hier habe ich das file (nur org. file ohne speicherintensive Tabellenblätter) abgespeichert.
Den code findest du im Modul 3 unten.
http://www.uploadagent.de/files/1187592448/Tool_Master.xls
Bitte mach dir keinen Stress mit meinem Anfängerproblem hier. Ich bin auch sehr glücklich wenn ich am Schluss eine passende Version habe, das muss nicht heute Abend sein.
Viele Grüsse aus der Schweiz
Rainer
Ps: viel Spass in Bosnien. Mein Bruder ist gerade von da zurückgekommen und ihm hat es sehr gut gefallen ;-)

Anzeige
AW: Rechts und Links verwechselt
20.08.2007 23:28:00
Ramses
Hallo
aber die Datei ist ja wieder anders aufgebaut als die andere ?!
Stand in der ersten Datei auch schon der Tabellenname in der Pfadangabe ?
Wenn ja habe ich dort schon einen Denkfehler eingebaut. Der darf natürlich nicht drin stehen.
Soweit ich mich erinnere standen die Daten dort so
qPath = .Range("C11")
qName = .Range("D11")
savePath = .Range("Q11")
saveName = .Range("R11")
Wenn das nun nicht mehr ist, dann knallt's natürlich.
Was ist denn nun mit den Monaten die dahinter herkommen ?
Gruss Rainer

AW: Rechts und Links verwechselt
21.08.2007 08:39:33
Rainer
Hallo Rainer
ja, da hast du schon recht. ich habe es etwas angepasst. das erste file das ich dir hochgeladen hat, hat für mich nur die funktion eines dummy files, damit ich den code dann auf das richtige adaptieren kann.
ist natürlich klar, dass code und dateiname, wenn der code so aufgebaut ist wie du es gemacht hast, nicht zusammenstehen darf.
im ganzen code habe ich aber andere quellen bei denen ich der Pfad und dateiname direkt aus einer Zelle ziehe. Deshalb setzte ich den in der Spalte B den Pfad und Dateinamen zusammen.
Die Überlegung war, dass sich diese Zellen, abhänging von der Monatsauswahl in der Eingabemaske automatisch anpasst. So habe ich maximale benutzerfreundlichkeit, da sich niemand in Pfaden und Dateinamen bewegen muss, damit auch nix schiefgehen kann.
Funktionniert meine Struktur somit nicht? wenn ja, weshalb? Ich ziehe für "deinen code" ja nix aus der Spalte B (Pfad und Name zusammengesetzt).
Gruss
Rainer

Anzeige
AW: richtig verstanden?
20.08.2007 09:59:00
Rainer
guten morgen nochmals..
ich glaube ich habe dich bei deiner Frage nachdem, ob es sich nur um eine Datei handelt falsch verstanden. Es handelt sich durchaus nur um eine Datei, bei dem Makro wo wir jetzt dran sind.
Ich habe ja noch von einem anderen Problemchen geschrieben, dass ich die Pfade für andere Prozeduren ebenfalls aus den Zellen ziehen möchte.
Um dir zu erklären wofür ich das brauche, muss ich kurz noch etwas ausholen. Bis jetzt hatte ich ein Master File und Quell-files. Von den Quell-Files wurden die Daten mit V-lookup in das Masterfile gezogen.
Das läuft soweit.
Nun möchte ich (um das ganze "zu professionalisieren") die Pfade der Files aus den Zellen holen. Und das, woran wir eigentlich sind (File öffnen und kopie erstellen) brauche ich dafür, dass ich die S-verweise dann nicht ins Masterfile selbst gemacht werden, sondern in das neue File. Denn ich möchte Die Datenfiles vom Makro File (Master) trennen. Der Mater enthält somit nur Makros und sagt aus welchen 2 files der S-verweis geschehen muss.
War das so halbwegs verständlich?
Um somit nochmals zurückzukommen, ob nur ein File kopiert werden muss: JA, aber bei den anderen Files (für S-Verweise handelt es sich um mehrere).
Beim zweiten Problem des anpassen dass die Pfade für die S-verweise aus Zellen gezogen werde, habe ich wie oben bereits beschrieben, das Problem, dass ich das nicht so ändern kann wie ich möchte.
Falls du mir helfen möchtest, was ich natürlich sehr schätzen würde, ... es handelt sich um die Prozedur UmsatzStrecke() oben im Modul zwei. Ich hoffe wirklich, dass ich mich hier auf der Zielgeraden befinde und nicht wie alllzu oft die Probleme erst beginnen wenn man denkt man hat es jetzt.
Ps: bitte gib mir Bescheid ob du schweizer schoggi magst, ich fühle mich langsam aber sicher einer Gegenleistung schuldig ... ;-)

Anzeige
Endlich - es hat geklappt. Besten Dank! :-)
21.08.2007 15:01:10
Rainer
nach einigen stunden rumpröbeln und umstellen klappts jetzt. Es ist mir zwar nicht ganz logisch, aber ich lass das nun mal so. ich möchte ja auch weiterkommen :-)
danke nochmals für deine ausführliche Hilfe!
Gruss
Rainer

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige