Variable nom du fichier
Bonjour à tous,
J’ai pour mon travail crée un outil de gestion et d’analyse à titre personnel, après présentation de l’outil on m’a demandé de le mettre à disposition du groupe .
Seulement voilà mes macro font référence à mon fichier original workbooks(« nom du fichier ») . Activate.
seulement voilà, j’aimerai que le nom du fichier soit une variable .
pour que les autres utilisateurs puisque copier le fichier le fichier original et le renommé et que ça n’altère pas les module
en vous remerciant pour votre aide
Salut,
J'ai compris que ta macro est placée dans dans un fichier de base que tu veux distribuer à tes collègues et qu'elle fait référence à un fichier extérieur dont le nom est différent pour chacun d'eux.
Une solution serait que chacun place le nom de son fichier extérieur (et son extension) dans une cellule précise de ton fichier de base et que ta macro fasse référence à cette cellule.
Une autre solution serait de travailler avec seulement deux classeurs ouverts en même temps et que ta macro fasse référence à l'autre classeur ouvert.
Une troisième solution serait de trouver un mot clef qui apparaisse dans chacun des fichiers de tes collègues et que ta macro fasse référence à ce mot clef.
Il y a tout plein d'autres solutions, mais sans avoir plus d'information, difficile de t'aider mieux.
Peux-tu déjà fournir une copie de ton fichier de base et donner un peu plus d'information sur les fichiers de chaque collaborateur ?
Amicalement.
Salut,
Tout d’abord merci de ta réponse rapide :)
Je me suis mal exprimé et j’en suis désolé, je ne pas te fournir le fichier ayant dessus des informations de mon entreprise. je vais essayé de mieux décrire ma problématique
Aujourd’hui je travail sur un classeur ( on l’appellera « gestion secteur 1 »), il s’agit de l’unique copie de ce classeur . Dessus il y a des macro que j’ai faite qui utilise le nom de fichier. Par exemple :
- workbooks(« gestion secteur 1 »).worksheets(« feuill1 »). Textbox1.clear
- workbooks(« gestion secteur 1 »).worksheets(« feuill1 »). Cells(1,3).value
Ect .. mon soucis et dans l’appelle que je fait : workbooks(« gestion secteur1 »).
puisque mon responsable voudrait le mettre à disposition de mes collègues et d’autres secteurs.
Il devront crée une copie de mon fichier original et le renommer par exemple : gestion secteur 2 , gestion secteur 3 …
Mais en faisant cela mes macro ne fonctionneront puisque le nom du fichier n’est pas une variable.
mes solutions sont soit ;
Modifier les macro avec le nom du fichier correspondant à chaque secteur . Ce qui me prendrai beaucoup de temps et ne serait pas une solution viable à long terme et surtout dans la mise en place pour une entreprise . Puisque je devrait le faire à chaque copie crée.
Soit
Dans mon fichier original , affecter une variable nom du fichier . Qui serait automatiquement modifier à chaque copie de mon classeur .
ne plus passer par : workbooks(« gestion secteur 1 »)
Mais par quelque chose du genre : workbooks( « &variableNomFichier & »)
J’espere avoir été plus explicite dans ma demande
En vous remerciant pour votre aide :)
Re-bonjour,
Tout d'abord, on peut anonymiser un fichier confidentiel en créant une copie et en supprimant par exemple toutes les feuilles inutiles à la démonstration, en effaçant les noms des dix milles clients et en les remplaçant par le nom Client 1 dans la première cellule et en l'incrémentant jusqu'à la ligne 10 (à moins que 15 lignes soient nécessaires à la démonstration de la macro déjà en place), etc. Mais sans fichier, c'est la croix et la bannière. C'est un peu comme si tu vas chez ton garagiste et que tu lui dit que tu ne peux lui montrer que des photos de ta voiture car tu aurais déposé des objets confidentiels dans ton auto !
Deuxièmement je ne comprends pas que tu fasses références au propre classeur sur lequel tu travailles, puisqu'Excel y fait référence par défaut.
Selon moi, workbooks(« gestion secteur 1 »).worksheets(« feuill1 »). Textbox1.clear peut être remplacé par worksheets(« feuill1 »). Textbox1.clear, mais sans ton classeur, difficile de faire moi-même les essais nécessaires. Ceci résoudrait tous tes problèmes.
Sinon - pour d'autres utilisation que la tienne dans le cas présent - il y a la possibilité de faire référence au fichier contenant la macro en utilisant l'instruction ThisWorkbook.name.
A te relire.