Enregistrement de fichier

Bonjour Andrea73,

J'utilise une procédure d'enregistrement de fichier que je souhaiterai raccourcir....la voici,

  • bouton office
  • enregistrer sous
  • classeur XL...macros
  • Ici l'explorateur apparait et il faut que je recherche le sous dossier dans lequel je veux enregistrer mon fichier
soit : recherche du dossier puis du sous dossier
  • saisie du nom de fichier (toujours différent)
  • enregistrer

je trouve que cette procédure est longue lorsqu'on la répète une vingtaine de fois par jour. Mon but est de gagner du temps

Si tu as une idée ??, merci

mibri

bonjour,

Je ne sais pas si ce message était adressé au forum ou bien uniquement à Andréa73 mais bon le principal est que ton problème soit résolu je suppose ?

Peux tu connaitre le nom du fichier avant de l'enregistrer ? Du style un mot dans une cellule plus une date ou quelque chose comme ca ?

De plus, comment détermines tu où tu vas enregistrer le fichier ?

a plus !

Bonjour Braters

OUI je connais le nom du fichier il se trouve effectivement dans deux cellules.

L'enregistrement du fichier est toujours dans le même sous dossier

merci

cdt

mibri

Bonjour,

voilà un code qui fonctionne chez moi :

Sub enregistrer()
Dim a As String
Dim Chemin As String
Dim dossier As String
Dim sousdossier As String

    dossier = Range("A3")
    sousdossier = Range("A4")
    nom = Range("A1") & "_" & Range("A2")
    Chemin = "C:\Users\....\Desktop\" & dossier & "\" & sousdossier & "\" 'Pense à adapter le chemin d'enregistrement !

    If Format(a) <> False Then
        ThisWorkbook.SaveAs Chemin & nom, xlOpenXMLWorkbookMacroEnabled
    End If

End Sub

tu peux changer les références des cellules dans la macro comme bon te semble !

A plus

Bonjour,

merci pour ta réponse

dossier = Range("A3")....??.......faut il là mettre le nom du dossier ?????

sousdossier = Range("A4") ...??.........et là le nom du sous dossier ??

Le chemin ensuite que j'ai reconnu ???

"C : \DOCUMENTS(E)\T.E.G\C2 - PREJUDICE EN ATTENTE D'ENVOI

est ce suffisant comme chemin.

Quelle sera la procédure d'activation de l'enregistrement ?????

merci

mibri

dans mon exemple, dossier = Range("A3"), donc en A3 tu mets "T.E.G", sousdossier = Range("A4") donc A4 = C2 - PREJUDICE EN ATTENTE D'ENVOI.

Bien sur, tu peux changer le A3 et A4 et mettant n'importe quelle cellule de la feuille.

Dans la macro, Chemin = "C:\DOCUMENTS(E)\" & dossier & "\" & sousdossier & "\"

Si c'est ici que tu veux enregistrer ton fichier, c'est suffisant !

Quand tu veux, à la fermeture du fichier, dès qu'un changement est fait, en cliquant sur un bouton, dis moi ?

Apparemment le code du "chemin" n'est pas accepté.......je te fais parvenir un fichier exemple sur lequel j'ai essayé d'adapter tes données

merci

19exemple.xlsm (45.71 Ko)

Je t'ai dit dans la macro,

Chemin = "C:\DOCUMENTS(E)\" & dossier & "\" & sousdossier & "\"

Dossier et sousdossier sont des variables, c'est à dire qu'elles prennent la valeur des cellules que tu leurs affectes. Dans ton fichier, D60 et D61. Si tu changes D60 alors la valeur de dossier change.

De plus, vérifie bien que le début du chemin correspond bien à "C:\DOCUMENTS(E)\" si ton dossier est dans le lecteur "E:\" alors il faut changer le "C" en "E" etc ...

j'ai remplacé C par E mais le système me met toujours en erreur (rouge)

J'ai un message "ERREUR DE COMPILATION

Attendu : fin d'instruction

merci

cdt

mibri

Peux-tu enregistrer quelque chose à l'endroit ou tu veux que ton fichier soit sauvegarder, tu cliques dessus, puis clique droit, propriétés, onglet sécurité et copier collé le chemin et me l'envoyer stp ?

En te remerciant,

Voilà le chemin de l'onglet PROPRIETE\SECURITE

E:\T.E.G\C2 - PREJUDICE EN ATTENTE D'ENVOI\Exemple.xlsm

merci

Dans ce cas, à changer dans la macro :

Chemin = "E:\" & dossier & "\" & sousdossier & "\"

Pense à enlever le point dans ta cellule D61 je crois après "D'ENVOI"

J'ai bien retiré le point après ENVOI, merci, mais j'ai toujours le même message après avoir modifier le chemin

capture

Quand je mets "dossier" dans le code c'est qu'il faut mettre "dossier" pas le nom de ton dossier, celui-ci se trouve en D60 !!

Je me répète :

Dossier et sousdossier sont des variables, c'est à dire qu'elles prennent la valeur des cellules que tu leurs affectes. Dans ton fichier, D60 et D61. Si tu changes D60 alors la valeur de "dossier" change.

A quoi cela servirait-il de mettre T.E.G dans la cellule D60 si c'est pour la remettre dans ta macro ?

Si tous les fichiers que tu comptes enregistrer iront tous dans T.E.G\C2 - PREJUDICE EN ATTENTE D'ENVOI\ alors tu peux supprimer D60 et D61 et mettre la macro suivante :

Sub enregistrer()
Dim a As String
Dim Chemin As String
    nom = Range("D5") & "_" & Range("F5")
    Chemin = "E:\T.E.G\C2 - PREJUDICE EN ATTENTE D'ENVOI\"
    If Format(a) <> False Then
        ThisWorkbook.SaveAs Chemin & nom, xlOpenXMLWorkbookMacroEnabled
    End If
End Sub

Si dans le cas ou ton Dossier et sous dossier risque de changer alors tu mets le nom du dossier dans D60 et du sous dossier dans D61 et tu mets cette macro sans rien modifier :

Sub enregistrer()
Dim a As String
Dim Chemin As String
Dim dossier As String
Dim sousdossier As String

    dossier = Range("D60")
    sousdossier = Range("D61")
    nom = Range("D5") & "_" & Range("F5")
    Chemin = "E:\" & dossier & "\" & sousdossier & "\"

    If Format(a) <> False Then
        ThisWorkbook.SaveAs Chemin & nom, xlOpenXMLWorkbookMacroEnabled
    End If

End Sub

A plus

Effectivement tous les fichiers crées seront sauvegardés dans ce sous dossier.

J'ai donc supprimé D60 et D61

J'ai copié le premier code que j'ai collé sur ma feuille

Peux tu maintenant me créer un bouton en V2 qui me permettra l'enregistrement

merci pour ton aide

mibri

7exemple.xlsm (45.56 Ko)

Pour cela il te suffit d'aller dans l'onglet insérer, forme, rectangle, tu traces, clique droit, affecter une macro, tu sélectionnes "enregistrer" et tu valides. Ensuite tu mets le texte, la forme, la couleur que tu veux et le tour est joué !

A plus

merci Braters pour ta réponse. J'ai placé mon bouton mais j'ai le message suivant...Je crois quand même qu'on y est presque

cordialement

mibri

capture

bonjour Miribri

et quand tu clic sur Ok tu as quelle ligne qui bug et deviens jaune

Bonsoir grisan29, lorsque je clique sur OK le message s'efface et aucune lign e jaune n'apparait dans la feuille de codes

merci

bonsoir

pourtant c'est un message vba

le fait d'avoir supprimé des lignes du code de Blaters, n'aurait pas tu enlevé une variable, ou il en manque une.

déjà dans ton code présenté "nom" est sans variable, tout seul il peut pas agir il faut que "nom" représente quelque chose comme la feuille par exemple, car les "range" prennent leurs instructions dans la feuille

Rechercher des sujets similaires à "enregistrement fichier"