Nom Feuil VBA

Bonjour,

J'ai plusieurs codes qui utilisent le nom personnalisé que j'ai donné à mes feuilles de calcul. Par exemple :

Sheets("Feuil4").Visible = False
Sheets("Suivi des Commandes").Select
With Workbooks("Mon Fichier.xlsm").VBProject.VBComponents("ThisWorkbook").CodeModule

Est-il possible de nommer les feuilles de calcul non plus par leur nom personnel mais plutôt par le nom Feuil1, Feuil2... qui lui n'est pas modifiable. Idem pour le nom du classeur comme dans le dernier exemple.

Merci d'avance pour votre aide,

Baptiste

Bonjour Baptiste, bonjour le forum,

Le composant ThisWorkbook n'est pas modifiable. Pour les onglets voir la propriété CodeName....

Bonjour,

1- si par exemple, Feuil1 est l'objet associé à la feuille "Suivi des Commandes"

Sheets("Suivi des Commandes").Select

peut être remplacé par

Feuil1.Select

2- Tous les noms d'objets associés au classeur : Feuil1, Feuil2, ... et ThisWorkbook sont tout à fait modifiables dans l'éditeur VB.

Bonjour le fil, bonjour le forum,

Thev a raison je m'étais planté. Via VBE on peut aussi changer ThisWorkbook... Mille excuses !...

Bonjour Thev, ThauThème et le forum

Merci pour vos réponses. Je vais appliquer vos conseils pour éviter d'avoir des erreurs de procédures si le nom de mes feuilles de calculs sont changées

J'ai encore un petit doute pour cela :

With Workbooks("Mon Fichier.xlsm").VBProject.VBComponents("ThisWorkbook").CodeModule

Je peux remplacer le nom de mon fichier "Mon Fichier.xlsm" par le simple terme "ThisWorkbook" pour indiquer à VBA qu'il s'agit de mon fichier actuel sur lequel appliquer des modifications ?

Merci encore !

Baptiste

Je peux remplacer le nom de mon fichier "Mon Fichier.xlsm" par le simple terme "ThisWorkbook" pour indiquer à VBA qu'il s'agit de mon fichier actuel sur lequel appliquer des modifications ?

ThisWorkbook est un objet VBA et non une chaîne de caractères. Il représente le classeur où s'exécute le code . Donc vous pouvez remplacer

Workbooks("Mon Fichier.xlsm")

par

ThisWorkbook 

si tant est que "Mon Fichier.xlsm" est bien le classeur où s'exécute votre code.

L'autre objet VBA que vous pouvez utiliser est : ActiveWorkbook qui représente le classeur actif.

Merci je comprends mieux Du coup ça m'amène à cette question :

J'ai une macro qui effectue un backup de mon fichier actif dans un autre répertoire pour ensuite réinitialiser certaines feuilles du fichier en cours d'utilisation. Pour limiter le risque d'erreur lors de l’exécution de la procédure, faut-il mieux choisir entre : ThisWorkbook ou ActiveWorkbook ou cela n'a-t-il pas d'importance ?

Si votre macro s'exécute dans votre fichier actif, les 2 objets : ThisWorkBook et ActiveWorkBook représentent le même classeur.

ThisWorkBook a l'avantage de ne pouvoir représenter qu'un seul classeur, celui où s'exécute le code.

ActiveWorkBook peut représenter successivement plusieurs classeurs si d'autres classeurs sont ouverts, selon celui activé.

Si le backup et les réinitialisations de feuille ne concernent que le classeur où s'exécute votre code, le choix de ThisWorkBook me parait le meilleur car il sera sans ambiguïté.

Super, un grand merci pour vos éclaircissements !

Bon weekend,

Baptiste.

Bonsoir,

Je me permets de relancer mon sujet par rapport à cette ligne de programmation :

    With Worksheets("suivi1")
        ...
        End With

Comment puis-je réécrire la procédure avec l'identifiant unique de ma feuille de classeur si "suivi1" correspond à "Feuil7" ?

Merci d'avance

With Feuil7
        ...
End With

C'est parfait ! Merci beaucoup thev j'ai pu adapter toute ma programmation.

Bon dimanche,

Baptiste

Rechercher des sujets similaires à "nom feuil vba"