Chalafraiz
XLDnaute Nouveau
Bonjour,
Je commence à bien savoir utiliser VBA mais j'ai encore beaucoup de problèmes avec l'utilisation des variables, et je bute actuellement sur un problème pour lequel je n'ai pas trouvé de solution sur le net.
Dans mon classeur, j'ai un bon nombre de feuilles. Voici une liste exhaustive de ce que l'on peut voir dans l'onglet "Microsoft Excel Object" de VBA :
Comme vous l'aurez surement compris, les noms entre parenthèses représentes ceux visibles dans les onglets Excel, et je ne souhaite pas les changer car ils permettent à l'utilisateur de les reconnaître. Comme dans les feuilles de catalogues il n'y a pas de fonctions, je n'ai pas souhaité les renommer (telles que les feuilles Accueil et Donnees, pour lesquelles il était plus pratique d'écrire Call Donnees.Ma_Macro plutôt que Call Feuil2015.Ma_Macro).
Comme leur nombre est conséquent, je n'ai pas envie de m'embêter à faire une liste de :
Je pensais faire appel à un code tel que le suivant, mais cela ne fonctionne pas.
Je sais que ce code est moche, je pensais bien que cela ne fonctionnerait pas vu que je demande à VBA de définir une feuille comme une variable. Je précise que j'ai aussi essayé sans passer par NomFeuille, en déclarant Feuille as Object, mais il n'appréciait pas le Feuille = "Feuil" & i
Bref, je sais pourquoi mon code ne fonctionne pas (mauvaise manipulation des variables), j'aimerais juste que vos lumières m'éclairent, pour savoir si j'ai raison de continuer à m'entêter dans ce genre de fonctions, ou si cela n'est pas possible...
Merci d'avance pour votre aide !
P-S : en passant, si vous avez des liens vers des cours sur les variables telles que Sheet, Variant, Object, je prends !
Je commence à bien savoir utiliser VBA mais j'ai encore beaucoup de problèmes avec l'utilisation des variables, et je bute actuellement sur un problème pour lequel je n'ai pas trouvé de solution sur le net.
Dans mon classeur, j'ai un bon nombre de feuilles. Voici une liste exhaustive de ce que l'on peut voir dans l'onglet "Microsoft Excel Object" de VBA :
-Accueil (Accueil)
-Donnees (Donnees)
-Feuil10 (Catalogue ABC)
-Feuil11 (Catalogue truc)
-...
-Feuil30 (Catalogue chouette)
-Donnees (Donnees)
-Feuil10 (Catalogue ABC)
-Feuil11 (Catalogue truc)
-...
-Feuil30 (Catalogue chouette)
Comme vous l'aurez surement compris, les noms entre parenthèses représentes ceux visibles dans les onglets Excel, et je ne souhaite pas les changer car ils permettent à l'utilisateur de les reconnaître. Comme dans les feuilles de catalogues il n'y a pas de fonctions, je n'ai pas souhaité les renommer (telles que les feuilles Accueil et Donnees, pour lesquelles il était plus pratique d'écrire Call Donnees.Ma_Macro plutôt que Call Feuil2015.Ma_Macro).
Comme leur nombre est conséquent, je n'ai pas envie de m'embêter à faire une liste de :
Code:
Feuil10.protect
Feuil11.protect
...
Je pensais faire appel à un code tel que le suivant, mais cela ne fonctionne pas.
Code:
Dim i as integer
Dim NomFeuille as Variant
Dim Feuille as Sheet
For i = 10 To 50
NomFeuille = "Feuil" & i
Set Feuille = NomFeuille
Feuille.Protect
Next
Je sais que ce code est moche, je pensais bien que cela ne fonctionnerait pas vu que je demande à VBA de définir une feuille comme une variable. Je précise que j'ai aussi essayé sans passer par NomFeuille, en déclarant Feuille as Object, mais il n'appréciait pas le Feuille = "Feuil" & i
Bref, je sais pourquoi mon code ne fonctionne pas (mauvaise manipulation des variables), j'aimerais juste que vos lumières m'éclairent, pour savoir si j'ai raison de continuer à m'entêter dans ce genre de fonctions, ou si cela n'est pas possible...
Merci d'avance pour votre aide !
P-S : en passant, si vous avez des liens vers des cours sur les variables telles que Sheet, Variant, Object, je prends !
Dernière édition: