Datei in einem schon angelegten Ordner speichern

Dieses Thema Datei in einem schon angelegten Ordner speichern im Forum "Microsoft Office Suite" wurde erstellt von Elhamplo, 27. Okt. 2005.

Thema: Datei in einem schon angelegten Ordner speichern Hallo, Ich mal wieder. Ich bedanke mich schon mal im voraus dafür das Ihr mir helft. Und zwar hab ich folgendes...

  1. Hallo,

    Ich mal wieder.

    Ich bedanke mich schon mal im voraus dafür das Ihr mir helft.

    Und zwar hab ich folgendes Problem.

    Ich will eine Datei in ein schon angelegten Ordner speichern. Der Name des Ordners ist eine Kundennummer und die Kundennummer ist auch in der Datei in der Spalte J15. Für einen neuen Kunden wird auch dann vorher ein neuer Ordner wieder angelegt. Ist es möglich das Excel sich die Zelle J15 anschaut und die Nummer mit den Ordner vergleicht und der Ordner mit der entsprechenden Nummer gefunden wird die Datei dann in den Ordner speichert??

    Danke

    Gruß

    Elhamplo
     
  2. Hallo Elhamplo,

    liegen die Kundenordner alle unter einem Verzeichnis ?

    Wie sieht eine solche Kundennummer aus ?

    Soll ein neuer Ordner angelegt werden, wenn noch kein Ordner vorhanden ist ?

    Gruß Matjes :)
     
  3. Hallo,

    Die Kundennummer ist eine tausender Nummer z.B. 15681. Der Ordner ist schon vorhanden.

    Danke Gruß

    Elhamplo
     
  4. Hallo Elhamplo,

    dann probier mal dieses Makro.

    Den Hauptpfad in der Konstanten c_Pfad_Ordner_KNrs mußt du noch anpassen.

    Gruß Matjes :)
    Code:
    '*****************************************************
    Sub Excel_SpeichernInOrdnerRangeJ15()
    '***
    '*** speichert die aktive Arbeitsmappe unter
    '*** c_Pfad_Ordner_KNrs\(Inhalt J15)
    '***
      Const c_Pfad_Ordner_KNrs = c:\TestKnr\Kundennummern
      Const c_Range_KNr = J15
    
      Dim ws As Worksheet, wb As Workbook
      Dim s_Knr As String, x As Long, s As Long, ret As Integer
      Dim s_Pfad As String, s_Filename_Full As String
      
     ->aktive Mappe, aktives Blatt
      Set wb = ActiveWorkbook
      Set ws = ActiveSheet
      
     ->KNr holen, Leerzeichen vorn und hinten ggf. löschen
      s_Knr = Trim(ws.Range(c_Range_KNr).Value)
      
     ->Knr prüfen
      If s_Knr =  Then MsgBox (Kundennummer ist leer.): GoTo AUFRAEUMEN
      For x = 1 To Len(s_Knr)
        s = Mid(s_Knr, x, 1)
        Select Case s
          Case 0 To 9->ok
          Case Else->nok
            MsgBox (Kundennummer-> & s_Knr &-> entspricht nicht dem vorgegebnen Format.)
            GoTo AUFRAEUMEN
        End Select
      Next
      
     ->HauptPfad prüfen
      If Dir(c_Pfad_Ordner_KNrs, vbDirectory) =  Then
        MsgBox (HauptPfad-> & c_Pfad_Ordner_KNrs &-> nicht vorhanden.): GoTo AUFRAEUMEN
      End If
      
     ->Pfad für Kundenordner zusammensetzen
      If Right(c_Pfad_Ordner_KNrs, 1) = \ Then
        s_Pfad = c_Pfad_Ordner_KNrs & s_Knr
      Else
        s_Pfad = c_Pfad_Ordner_KNrs & \ & s_Knr
      End If
      
     ->Pfad Kundenordner prüfen
      If Dir(s_Pfad, vbDirectory) =  Then
        ret = MsgBox( _
                Kundenordner-> & s_Pfad &-> nicht vorhanden. & vbLf & vbLf & _
                Soll der Ordner angelegt werden?, _
                vbQuestion + vbDefaultButton2 + vbYesNo)
        If ret = vbYes Then
         ->Pfad anlegen
          On Error Resume Next
          MkDir s_Pfad
          If Err.Number <> 0 Then
            Err.Clear
            MsgBox (s_Pfad &  konnte nicht erstellt werden.)
            On Error GoTo 0
            GoTo AUFRAEUMEN
          End If
          On Error GoTo 0
        Else
          GoTo AUFRAEUMEN
        End If
      End If
    
     ->neuen vollen Dateipfad zusammenstellen
      s_Filename_Full = s_Pfad & \ & wb.Name
      
     ->prüfen, ob Datei bereits vorhanden ist
      If Dir(s_Filename_Full, vbNormal) <>  Then
       ->bereits vorhanden, Nachfrage auf überschreiben
        ret = MsgBox( _
                Datei-> & s_Filename_Full &-> bereits vorhanden. & vbLf & vbLf & _
                Soll die Datei überschrieben werden?, _
                vbQuestion + vbDefaultButton2 + vbYesNo)
        If ret = vbNo Then GoTo AUFRAEUMEN
      End If
    
     ->Datei in Kundenordner speichern (ohne Nachfragen)
      Application.DisplayAlerts = False
      wb.SaveAs FileName:=s_Filename_Full
      Application.DisplayAlerts = True
    
    AUFRAEUMEN:
      Set ws = Nothing: Set wb = Nothing
    End Sub
     
  5. Hey Matjes,

    HAMMER!! Danke für den Code!!! Super ding!!

    Jetzt noch eine Frage: Es wird nicht die ganze Datei gespeichert sondern ich kopiere vorher das Tabellenblatt hinaus mit den daten und dann kommt Dein Code ins Spiel. Das Fusnst super!!! Jetzt die Frage: Wie kann ich dann den Namen beim Abspeichern ändern?? Das nicht immer Mappe 1 da steht sondern Kundendaten oder ähnlichens???

    Gruß

    Elhamplo
     
  6. Hallo Elhamplo,

    man könnte das Kopieren auch gleich mit einbauen.
    Also z.B.
    - Quelldatei öffnen
    - relevantes Blatt aktivieren
    - Makro starten
        - Makro legt neu Arbeitsmappe an
        - Makro kopiert aktuelles Blatt in neu Arbeitsmappe
        - Makro speichert neue Arbeitsmappe wie gehabt
            in ...\Kundennummern\(KNR = Inhalt J15)
            und vergibt dabei gleich den richtigen Namen

    Wie ist den der Name der Ausgangsdatei ?
    Sind die nach einem Muster vergeben?
    Wie soll der Name der neuen Datei lauten/hergeleitet werden ?

    Gruß Matjes :)
     
  7. Hey Matjes,

    Danke für Antwort!!!! :)

    Mit dem kopieren, da hab ich das mit der Makroaufzeichnung gelöst. Bis Jetzt fehlt mir nur der Name. Ich hab den Code jetzt schon in mehreren Dateien kopiert. Einmal soll die Datei Kundendaten heißen und den Code hab ich für einen andere Datei auch genommen und dort soll die Datei dann Lieferschein heißen. Ich hab den Code in zwei unterschiedliche Datein gepack. Also läuft schon saugut, bis auf die Namen.

    Gruß Elhamplo
     
  8. Fein  :D

    aber wie soll denn nun die Namensgebung ablaufen ?
    Wie soll sich der Name denn zusammensetzen ?

    Gruß Matjes :)
     
  9. Hey,

    ich dachte einfach (ich bin ja auch VBA unwissend), wenn ich den Code im Visual Basic im Tabellenblatt Lieferschein einfüge und mit dem Kopier Code wird das Blatt ja in eine neue Mappe kopiert und soll dann einfach unter dem Namen Lieferschein wie schon gehabt (Dein Code) abgespeichert werden. Wenn ich den Code in die Datei mit den Kundendaten in dem Tabeleblatt Kundendaten einfüge soll das gleiche passiern nur unter dem Namen Kundendaten. So ungefähr dacht ich mir das.

    ich danke Dir vielmals für Deine Hilfe!!!!!!!!

    Gruß

    Elhamplo
     
  10. Hallo Elhamplo,

    wenn ich das richtig verstehe hast du ein Template (Vorlage), wlches als Vorlage für die Erfassung für Kundendaten und Lieferschein dient. In dieses Template hast Du den Makro kopiert. Dieses Blatt Lieferschein willst Du unter der Kundennummer in

    Wenn Du Kundendaten erfaßt hast, willst Du per Makro den Lieferschein in einer extra Mappe in besagtem Verzeichnis->Const c_Pfad_Ordner_KNrs' abspeichern.

    Wie soll denn der Name der Datei lautetn ?

    z.B. Lieferschein_KNR_15862_20051101.xls

    Gruß Matjes :)
     
Die Seite wird geladen...

Datei in einem schon angelegten Ordner speichern - Ähnliche Themen

Forum Datum
einer Dateiendung einem Programm zuordnen Windows 10 Forum 23. März 2016
datei aus einem ordner nicht löschbar Windows 7 Forum 1. Feb. 2011
Datein in einem Ordner selber sortieren Windows XP Forum 20. Jan. 2011
Anordnen von Dateien in einem Ordner Windows XP Forum 11. Sep. 2009
Dateiname als Untertitel / Alle Dateien in einem Ordner automatisch abspielen Windows XP Forum 3. Apr. 2013