[VB / EXCEL] Enregistrement d'un fichier

Résolu
Barsky Messages postés 48 Statut Membre -  
Barsky Messages postés 48 Statut Membre -
Bonjour,
Je souhaite enregistrer mon fichier .xls dans le dossier C:\doc......\BREST\monfichiers.xls. l'enregistrement basique n'est pas un problème.

p.s: BREST est juste un exemple

La où ça se corse c'est que je veux que mon fichier s'enregistre automatiquement dans le dossier \BREST\ ou autre ville en fonction de la valeur de la cellule C6 sur ma feuil1.

je pose mon fichier afin que vous puissiez voir plus en détail ce que je souhaite

http://www.cijoint.fr/cjlink.php?file=cj200812/cijHdBBfMi.xls

Merci d'avance

13 réponses

  1. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    Bonjour

    je n'ai pas tout compris tu parles de Brest ou une autre ville mais c'est ou dans ta feuille ? j'imagine c6 donc voici en macro en fonctione de C6

    sub save_fichier()
        dim chemin as string
        chemin = "C:\Documents and Settings\lionel tailler\Mes documents\Fiche" &  _
                      "d'intervention\INTERVENTIONS_TRAITEES\CURATIVE\" & range("C6")
        on error resume next ' La création d'un repertoire s'il existe déja provoque une erreur
        Mkdir chemin
        on error goto 0 ' je rends la main du contrôle d'erreur
        thisworkbook.saveas filename:=chemin & "\FICHE_INTERVENTION ok " & Range("A4") & ".xls"
    end sub
    
    1
    1. Barsky Messages postés 48 Statut Membre 11
       
      Merci pour ta réponse

      tu parles de Brest ou une autre ville mais c'est ou dans ta feuille ?

      Colonne H couleur de police Blanc c'est pour ça que tu ne les as pas vu :)

      Je vérifie si ça colle de mon coté je te tiens au courant
      0
  2. Barsky Messages postés 48 Statut Membre 11
     
    up
    1
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour tous,
    Si l'utilisateur est suceptible de changer !!

        chemin = Environ$("USERPROFILE") & "\Mes documents\Fiche" &  _
                      "d'intervention\INTERVENTIONS_TRAITEES\CURATIVE\" & range("C6")

    A+
    0
  4. Barsky Messages postés 48 Statut Membre 11
     
    sub save_fichier()
        dim chemin as string
        chemin = "C:\Documents and Settings\lionel tailler\Mes documents\Fiche" &  _
                      "d'intervention\INTERVENTIONS_TRAITEES\CURATIVE\" & range("C6")
        on error resume next ' La création d'un repertoire s'il existe déja provoque une erreur
        Mkdir chemin
        on error goto 0 ' je rends la main du contrôle d'erreur
    


    Jusque là c'est exactement ce que je souhaité mais la dernière ligne

    thisworkbook.saveas filename:=chemin & "\FICHE_INTERVENTION ok " & Range("A4")
    


    me met un message d'erreur exécution 1004

    => Le nom du fichier ou le chemin n'existe pas
    => Ce fichier est actuellement utilisé par un autre programme => non juste vb et mon classeur d'ouvert
    => Le classeur que vous essayer d'enregistrer porte le meme nom qu'un .... (je ne vois pas la suite hors cadre) => mais impossible.

    Bref tout semble bon mais ça ne passe pas
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    re:

    la pharse n'est pas complete : il manque la fin
    thisworkbook.saveas filename:=chemin & "\FICHE_INTERVENTION ok " & Range("A4") & ".xls"

    question : en gras, c'est le début du nom du classeur ou c'est encore un répertoire ???

    dans A4 : quels sont les caractères possibles : certains caractères sont interdit : comme : / (chemin d'url), \ (Chemin répertoire) ....
    0
  7. Barsky Messages postés 48 Statut Membre 11
     
    Re et merci

    FICHE_INTERVENTION " & Range("A4") & ".xls"

    c'est le nom de mon fichier .xls

    "C:\Documents and Settings\lionel tailler\Mes documents\Fiche d'intervention\INTERVENTIONS_TRAITEES\CURATIVE\" & range("C6")\FICHE_INTERVENTION " & Range("A4") & ".xls"

    Voila en faite l'arborescence c'est un classement par ville [range=("C6")] que je souhaite.

    Dans A4 il s'agit d'une date au format aaaammjj ce qui permet de faire un N° d'intervention.

    A4 est linkée C4 qui est la date au format jj-mm-aaaa

    Merci d'avance
    0
  8. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    re:

    "C:\Documents and Settings\lionel tailler\Mes documents\Fiche d'intervention\INTERVENTIONS_TRAITEES\CURATIVE\" & range("C6") & "\FICHE_INTERVENTION " & Range("A4") & ".xls"

    dans la ligne je ne vois que ce problème, si le répertoire est bien créé au bon endroit tu ne devrais plus avoir de problème, si le répertoire n'existe pas, la première procédure que je t'ai donnée devrait le faire

    0
  9. Barsky Messages postés 48 Statut Membre 11
     
    Je viens de penser a une chose tout mes dossiers sont bloqués en lecture seule peut il y avoir une répercution sur la macro ?

    P.S : j 'ai déjà testé la commande dos attrib

    Bizarre car j ai tout de même mon répertoire \C6\ qui se crée.

    wilfried_42, merci pour ton aide je vais finir par faire un screen écran :s

    lien screen écran

    j'ai ouvert l'explorateur derrière l'éditeur vb pour te montrer que le repetoire \Brest\ se crée bien

    http://www.cijoint.fr/cjlink.php?file=cj200812/cijVvato3u.bmp
    0
  10. Barsky Messages postés 48 Statut Membre 11
     
    sub save_fichier()
        
    Dim chemin As String
        chemin = "C:\Documents and Settings\lionel tailler\Mes documents\Fiche" & _
                      " d'intervention\INTERVENTIONS_TRAITEES\CURATIVE\" & Range("C6")
        On Error Resume Next ' La création d'un repertoire s'il existe déja provoque une erreur
        
    visual = True
        
        MkDir chemin
       
         ChDir chemin
    
        On Error GoTo 0 ' je rends la main du contrôle d'erreur
       
     ThisWorkbook.SaveAs Filename:=chemin & "\FICHE_INTERVENTION" & Range("A4") & ".xls" _
    
    end sub


    J'ai même essayer d'ajouter le code chdir mais rien n'y fait toujours la même erreur que dans le screen
    0
  11. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Si tes fichiers sont en lecture seule y a pas moyen de les sauver, faut changer l'attribut.
    A+
    0
  12. Barsky Messages postés 48 Statut Membre 11
     
    impossible de le changer j'y arrive pas
    => invite de commande
    => B.D.R

    si c'est de la d'où viens le soucis c'est soulant merci crosoft
    0
  13. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    re:

    dans une fenetre Dos

    c:>Help attrib

    cela donne :
    Affiche ou modifie les attributs de fichier.
    
    ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I] 
           [lecteur:][chemin][nom fichier] [/S [/D] [/L]]
    
      +   D‚finit un attribut.
      -   Efface un attribut.
      R   Attribut de fichier en lecture seule.
      A   Attribut de fichier archive.
      S   Attribut de fichier systŠme.
      H   Attribut de fichier cach‚.
      I   Attribut de fichier index‚ sans contenu.
      [lecteur:][chemin][nom fichier]
          Sp‚cifie un ou plusieurs fichiers … traiter par attrib.
      /S  Traite les fichiers correspondants dans le dossier actif
          et tous ses sous-dossiers.
      /D  Traite ‚galement les dossiers.
      /L  Effectue l'op‚ration sur les attributs du lien symbolique
          plut“t que sur sa cible.
    

    donc : pour enlever les protections d'écriture des répertoires
    attrib -R *. /s

    pour alles dans le Dos : executer : Cmd
    0
  14. Barsky Messages postés 48 Statut Membre 11
     
    Vos codes fonctionnent a merveille le seul truc c est que ma cellule A4 était au format personnalisé aaaammjj linké avec la cellule C4.

    Je pensais que ca passerais vu que la date de A4 n'avait pas de caractère / \ ou autre caractère rendant impossible l'enregistrement.

    P.S: même avec la commande DOS ATTRIB je n'ai pas reussit à modifier l'attribut lecture seule mais bon ca ne joue pas sur l'enregistrement.
    0