Sauvegarde fichier par VBA

Résolu/Fermé
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 27 avril 2016 à 00:51
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 28 avril 2016 à 18:37
Bonjour,

J'utilise le code ci-dessous pour sauvegarder automatiquement mes fichiers.

je n'ai rien changé à mon code, dans le module ou se trouve ce code, et ça ne marche plus.
le chemin est bien indiqué dans la cellule E2 de la feuille 6 !!!

Voici le code :

Dim chemin As String
chemin = ThisWorkbook.Worksheets(6).Range("E2")

MsgBox ("le chemin mémorisé est : " & chemin)

nom_xls = (chemin & Nom & ".xls")
ActiveWorkbook.ActiveSheet.SaveAs Filename:=nom_xls


j'ai ajouté un MsgBox pour voir, et la variable chemin affiche "vide" ???

Auriez-vous une piste de recherche ?

Merci d'avance.

Cordialement
A voir également:

3 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
27 avril 2016 à 08:23
Bonjour,

Dans ton autre post tu fais ceci:

 chemin_devis = Sheets("données_logiciel").Range("E2").Value


Pourquoi ne pas faire la même chose au lieu de mettre un numéro (qui ne correspond peut-être pas à ta feuille):

 chemin = Sheets("données_logiciel").Range("E2").Value



0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié par cs_Le Pivert le 27/04/2016 à 08:27
Une autre source d'erreur:

je n'ai rien changé à mon code, dans le module ou se trouve ce code,

Si tu travailles sur plusieurs modules, l'erreur provient certainement de ta variable chemin qui n'est pas déclarée Public!
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
27 avril 2016 à 21:12
Bonjour,

Merci pour ta réponse.

J'ai suivi ta remarque du post 1 et effectivement je n'ai plus de problème.
Tu doit peut-être aussi avoir raison pour la remarque du post 2 . j'ai aujourd'hui 9 modules.

Peux-tu juste me donner plus d'explication sur "déclarée Public" ?

Cordialement
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
28 avril 2016 à 07:54
Un petit cours a lire en entier pour comprendre:

https://silkyroad.developpez.com/VBA/LesVariables/#LV

Et pour ton problème voir:

Le niveau des variables
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
28 avril 2016 à 14:44
Bonjour,

Merci pour ta réponse.

A la lecture du texte, de ton lien, me vient une question:

Pour que la variable soit utilisable dans toutes les macros du projet, il faut utiliser l'instruction Public et la variable doit impérativement être placée en tête d'un module standard :

Dans le texte on parle de toutes les macros du projet.

il faut comprendre :

Placer la variable dans n'importe quel module même s'il y a 10 modules ?
la variable sera OK pour tous les modules ?
les UserForm ?
les macros dans les feuilles ?

Cordialement
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
28 avril 2016 à 15:41
Le mieux, tu insères un nouveau module pour mettre toutes tes variables qui sont Public .
Attention, comme il est dit dans le lien, il ne doit pas avoir de doublons de variable!
Quand tu mets une variable Public, tu supprimes celle qui se trouve dans un module.
Apprends toi à mettre Option Explicit tout en haut de tes modules. Cela corrige les erreurs de déclaration de variable

Bonne continuation
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
28 avril 2016 à 18:37
Bonjour,

Merci pour ces réponses. je vais appliquer à la lettre.

Cordialement
0