Sauvegarde fichier par VBA [Résolu/Fermé]

Signaler
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
-
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
-
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

3 réponses

Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
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



Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
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!
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7 >
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020

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
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
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
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7
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
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
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
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7
Bonjour,

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

Cordialement