bonjour à toutes et tous,
j'ai un fichier excel comprenant de nombreuses feuilles. Chaque feuille
contient de nombreux petit programmes VBA dont certains vont chercher des
valeurs dans les feuilles voisines.
le problème est le suivant : si je modifie la mise en page d'une feuille
(rajout de colonne ou de ligne) il me faut reprendre tous les programmes VBA
des autres feuilles afin de leur fournir les nouvelles références dont elles
ont besoins.
Pour que mon travail soit plus simple il me faudrait définir des constantes
spécifiques concernant les références de toutes ces données transverses.
Ainsi, en cas de changement de mise en page d'une feuille, je n'aurais plus
le travail laborieux de changer les références dans tous les programmes
impactés, mais seulement de remettre à jour les constantes.
Mais voilà : comment définir des constantes reconnus par tous les programmes
de mes feuilles ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas B.
Salut,
Pour les constantes, il faut les déclarer Public en dehors d'une procédure : Dans un des modules, mets avant la première procédure :
Public Const maConstante As Integer = 9
Avec le mot clé Public, la constante est accessible depuis tout module.
Mais dans ton cas, il est peut-être préférable de nommer les plages utilisées. Tu peux alors utiliser ces plages dans VBA en utilisant leur nom :
Range("maPlage").Select ou [maPlage].Select
En rajoutant des lignes et des colonnes, il n'y aura alors rien à modifier dans ton code.
A+ Nicolas B.
bonjour à toutes et tous, j'ai un fichier excel comprenant de nombreuses feuilles. Chaque feuille contient de nombreux petit programmes VBA dont certains vont chercher des valeurs dans les feuilles voisines. le problème est le suivant : si je modifie la mise en page d'une feuille (rajout de colonne ou de ligne) il me faut reprendre tous les programmes VBA des autres feuilles afin de leur fournir les nouvelles références dont elles ont besoins.
Pour que mon travail soit plus simple il me faudrait définir des constantes spécifiques concernant les références de toutes ces données transverses. Ainsi, en cas de changement de mise en page d'une feuille, je n'aurais plus le travail laborieux de changer les références dans tous les programmes impactés, mais seulement de remettre à jour les constantes.
Mais voilà : comment définir des constantes reconnus par tous les programmes de mes feuilles ?
Salut,
Pour les constantes, il faut les déclarer Public en dehors d'une procédure :
Dans un des modules, mets avant la première procédure :
Public Const maConstante As Integer = 9
Avec le mot clé Public, la constante est accessible depuis tout module.
Mais dans ton cas, il est peut-être préférable de nommer les plages
utilisées. Tu peux alors utiliser ces plages dans VBA en utilisant leur
nom :
Range("maPlage").Select
ou
[maPlage].Select
En rajoutant des lignes et des colonnes, il n'y aura alors rien à
modifier dans ton code.
A+
Nicolas B.
bonjour à toutes et tous,
j'ai un fichier excel comprenant de nombreuses feuilles. Chaque feuille
contient de nombreux petit programmes VBA dont certains vont chercher des
valeurs dans les feuilles voisines.
le problème est le suivant : si je modifie la mise en page d'une feuille
(rajout de colonne ou de ligne) il me faut reprendre tous les programmes VBA
des autres feuilles afin de leur fournir les nouvelles références dont elles
ont besoins.
Pour que mon travail soit plus simple il me faudrait définir des constantes
spécifiques concernant les références de toutes ces données transverses.
Ainsi, en cas de changement de mise en page d'une feuille, je n'aurais plus
le travail laborieux de changer les références dans tous les programmes
impactés, mais seulement de remettre à jour les constantes.
Mais voilà : comment définir des constantes reconnus par tous les programmes
de mes feuilles ?
Pour les constantes, il faut les déclarer Public en dehors d'une procédure : Dans un des modules, mets avant la première procédure :
Public Const maConstante As Integer = 9
Avec le mot clé Public, la constante est accessible depuis tout module.
Mais dans ton cas, il est peut-être préférable de nommer les plages utilisées. Tu peux alors utiliser ces plages dans VBA en utilisant leur nom :
Range("maPlage").Select ou [maPlage].Select
En rajoutant des lignes et des colonnes, il n'y aura alors rien à modifier dans ton code.
A+ Nicolas B.
bonjour à toutes et tous, j'ai un fichier excel comprenant de nombreuses feuilles. Chaque feuille contient de nombreux petit programmes VBA dont certains vont chercher des valeurs dans les feuilles voisines. le problème est le suivant : si je modifie la mise en page d'une feuille (rajout de colonne ou de ligne) il me faut reprendre tous les programmes VBA des autres feuilles afin de leur fournir les nouvelles références dont elles ont besoins.
Pour que mon travail soit plus simple il me faudrait définir des constantes spécifiques concernant les références de toutes ces données transverses. Ainsi, en cas de changement de mise en page d'une feuille, je n'aurais plus le travail laborieux de changer les références dans tous les programmes impactés, mais seulement de remettre à jour les constantes.
Mais voilà : comment définir des constantes reconnus par tous les programmes de mes feuilles ?