Rechercher : dans
Par :

[VB / EXCEL] Enregistrement d'un fichier

Dernière réponse le 11 déc 2008 à 09:35:01 Barsky, le 9 déc 2008 à 09:40:21 
 Signaler ce message aux modérateurs

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.xl­s

Merci d'avance

1

wilfried_42, le 9 déc 2008 à 11:21:20
  • +1

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
Cordialement
Wilfried

ps: n'oubliez pas de mettre votre fil sur résolu quand vous obtenez ce que vous cherchez. Merci

Répondre à wilfried_42

2

Barsky, le 9 déc 2008 à 12:11:37

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

Répondre à Barsky

3

lermite222, le 9 déc 2008 à 13:04:33

Bonjour tous,
Si l'utilisateur est suceptible de changer !!

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

A+ L'expérience instruit plus sûrement que le conseil. (André Gide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)

Répondre à lermite222

4

Barsky, le 9 déc 2008 à 14:57:32

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

Répondre à Barsky

5

wilfried_42, le 9 déc 2008 à 16:18:23

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) .... Cordialement
Wilfried

ps: n'oubliez pas de mettre votre fil sur résolu quand vous obtenez ce que vous cherchez. Merci

Répondre à wilfried_42

6

Barsky, le 9 déc 2008 à 16:35:34

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

Répondre à Barsky

7

Barsky, le 9 déc 2008 à 17:58:17

Up

Répondre à Barsky

8

wilfried_42, le 9 déc 2008 à 18:21:40

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


Cordialement
Wilfried

ps: n'oubliez pas de mettre votre fil sur résolu quand vous obtenez ce que vous cherchez. Merci

Répondre à wilfried_42

9

Barsky, le 10 déc 2008 à 09:58:18

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.bm­p

Répondre à Barsky

10

Barsky, le 10 déc 2008 à 11:03:49

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

Répondre à Barsky

11

lermite222, le 10 déc 2008 à 12:39:22

Bonjour,
Si tes fichiers sont en lecture seule y a pas moyen de les sauver, faut changer l'attribut.
A+ L'expérience instruit plus sûrement que le conseil. (André G­ide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas for­cément le pot qui est vide. ;-)(Confucius)

Répondre à lermite222

12

Barsky, le 10 déc 2008 à 14:56:37

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

Répondre à Barsky

13

wilfried_42, le 10 déc 2008 à 15:37:24

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
Cordialement
Wilfried

ps: n'oubliez pas de mettre votre fil sur résolu quand vous obtenez ce que vous cherchez. Merci

Répondre à wilfried_42

14

 Barsky, le 11 déc 2008 à 09:35:01

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.

Répondre à Barsky
Collection CommentÇaMarche.net