Excel, probleme de boutons avec macro
Résolu
pierrotlaluna
-
Farfadet88 Messages postés 6295 Date d'inscription Statut Membre Dernière intervention -
Farfadet88 Messages postés 6295 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà j'ai un petit soucis.
J'ai crée un bouton dans une cellule avec la macro suivante :
Sub Bouton126_QuandClic()
Rows("11").Select
Selection.EntireRow.Hidden = True
End Sub
Dans les propriété du boutn, j'ai coché "verouillé".
J'ai ensuite protégé la feuille.
Le truc c'est que maintenant la macro ne fonctionne plus, enfin tant que la feuille est protégée ça ne marche plus, j'ai le message d'erreur suivant :
"erreur d'execution 1004
Impossible de definir la propriété Hidden de la classe range"
Il y a certainement un truc tout simple que je ne comprends pas, si vous pouviez eclairer ma lanterne, ce serait tres sympa :)
Merci par avance.
Voilà j'ai un petit soucis.
J'ai crée un bouton dans une cellule avec la macro suivante :
Sub Bouton126_QuandClic()
Rows("11").Select
Selection.EntireRow.Hidden = True
End Sub
Dans les propriété du boutn, j'ai coché "verouillé".
J'ai ensuite protégé la feuille.
Le truc c'est que maintenant la macro ne fonctionne plus, enfin tant que la feuille est protégée ça ne marche plus, j'ai le message d'erreur suivant :
"erreur d'execution 1004
Impossible de definir la propriété Hidden de la classe range"
Il y a certainement un truc tout simple que je ne comprends pas, si vous pouviez eclairer ma lanterne, ce serait tres sympa :)
Merci par avance.
A voir également:
- Excel, probleme de boutons avec macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
15 réponses
Super !
ça a l'air de marcher tres tres bien !
Merci a toi.
Mais encore une question concernant cette petite modif que tu m'as donné :
Le bouton que j'ai crée, j'en ai un par ligne.
Or en rajoutant ta modif dans une seule macro pour essai, je m'aperçois que ça fonctionne maintenant pour l'ensemble des boutons !
genre j'ai
Ligne 1
Sub Bouton1_QuandClic()
Rows("1").Select
Selection.EntireRow.Hidden = True
End Sub
ligne 2
Sub Bouton2_QuandClic()
Rows("2").Select
Selection.EntireRow.Hidden = True
End Sub
etc
sauf pour la ligne 9 ou j'ai rajouté ta modif dans la macro pour voir. Et etrangement tous les boutons fonctionnent quelle que soit la ligne.
Une explication ?
Merci
ça a l'air de marcher tres tres bien !
Merci a toi.
Mais encore une question concernant cette petite modif que tu m'as donné :
Le bouton que j'ai crée, j'en ai un par ligne.
Or en rajoutant ta modif dans une seule macro pour essai, je m'aperçois que ça fonctionne maintenant pour l'ensemble des boutons !
genre j'ai
Ligne 1
Sub Bouton1_QuandClic()
Rows("1").Select
Selection.EntireRow.Hidden = True
End Sub
ligne 2
Sub Bouton2_QuandClic()
Rows("2").Select
Selection.EntireRow.Hidden = True
End Sub
etc
sauf pour la ligne 9 ou j'ai rajouté ta modif dans la macro pour voir. Et etrangement tous les boutons fonctionnent quelle que soit la ligne.
Une explication ?
Merci
La ligne
ActiveSheet.Unprotect
Désactive la protection de toute ta feuille
ajoute
Activesheet.protect à la fin de tes macros et ça devrait le faire
ActiveSheet.Unprotect
Désactive la protection de toute ta feuille
ajoute
Activesheet.protect à la fin de tes macros et ça devrait le faire
Edit :
Non en fait ça ne semble pas marcher. Si je rentre un mot de passe pour proteger la feuille, je ne sais pas pourquoi mais si je veux appuyer sur un bouton il faut que je rentre le mot de passe..alors que je voudrais juste qu'il soit actif :/
Non en fait ça ne semble pas marcher. Si je rentre un mot de passe pour proteger la feuille, je ne sais pas pourquoi mais si je veux appuyer sur un bouton il faut que je rentre le mot de passe..alors que je voudrais juste qu'il soit actif :/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La ligne
ActiveSheet.Unprotect
Désactive la protection de toute ta feuille
ajoute
Activesheet.protect à la fin de tes macros et ça devrait le faire
Bon alors apres test, c'est bizarre...
quoi que je fasse, si la feuille est protegée par un mdp, si je veux cliquer sur un bouton il faut que je rentre le mdp car il m'est demandé.
Si je le rentre, la ok la macro fonctionne.
c'est un peu embetant cette affaire là :d
ActiveSheet.Unprotect
Désactive la protection de toute ta feuille
ajoute
Activesheet.protect à la fin de tes macros et ça devrait le faire
Bon alors apres test, c'est bizarre...
quoi que je fasse, si la feuille est protegée par un mdp, si je veux cliquer sur un bouton il faut que je rentre le mdp car il m'est demandé.
Si je le rentre, la ok la macro fonctionne.
c'est un peu embetant cette affaire là :d
En fait ta feuille est protégée.
Lorsque ActiveSheet.Unprotect se lance, il désactive ta protection. Si tu as mis un code de protection, il est évident qu'il va te le demander (sinon n'importe qui peut modifier la feuille et la protection est inutile)
Lorsque ActiveSheet.Unprotect se lance, il désactive ta protection. Si tu as mis un code de protection, il est évident qu'il va te le demander (sinon n'importe qui peut modifier la feuille et la protection est inutile)
arf daccord :/
Donc il n'existe pas de moyen avec une feuille verrouillée par un mdp de conserver actifs les boutons sans avoir a inserer un code ?
Donc il n'existe pas de moyen avec une feuille verrouillée par un mdp de conserver actifs les boutons sans avoir a inserer un code ?
Je cherche une manip pour masquer les lignes malgrè la protection, mais dur dur. Je suis pas un crack de VBA
Bon alors enlève ce que je t'ai dit (ActiveSheet.Unprotect et ActiveSheet.protect).
Lorsque tu vérouilles ta feuille, coche la case "format de lignes".
Ainsi ça devrait marcher
Lorsque tu vérouilles ta feuille, coche la case "format de lignes".
Ainsi ça devrait marcher
Bon ecoute, a bien y reflechir, au final je crois que je prefere qu'il y ai un code. MAIS, est-ce qu'il est possible que le code soit different de celui de la feuille ?
En voilà une belle colle, meme si je me doute bien que ça ne doit pas être possible huhu !
Parcque bon, les utilisateurs du .xls auront dejà un code a rentrer avoir le droit de modifier les cellules non verouillées qui leur seront utiles. Mais je ne souhaitais pas qu'il puisse toucher a autre chose ...
En voilà une belle colle, meme si je me doute bien que ça ne doit pas être possible huhu !
Parcque bon, les utilisateurs du .xls auront dejà un code a rentrer avoir le droit de modifier les cellules non verouillées qui leur seront utiles. Mais je ne souhaitais pas qu'il puisse toucher a autre chose ...
Si tu cliques sur "format de lignes" la seule chose qu'ils pourront modifier (même sans rentrer le code) est le format de la ligne.
donc protège ta feuille avec ton code en cochant la case "format de lignes"
donc protège ta feuille avec ton code en cochant la case "format de lignes"
Bon alors enlève ce que je t'ai dit (ActiveSheet.Unprotect et ActiveSheet.protect).
Lorsque tu vérouilles ta feuille, coche la case "format de lignes".
Ainsi ça devrait marcher
Mais maintenant je voudrais un code ! mais pas le meme que celui de la feuille !
Qu'est ce que je peux être chiant :d :d :d
désolé :o
Lorsque tu vérouilles ta feuille, coche la case "format de lignes".
Ainsi ça devrait marcher
Mais maintenant je voudrais un code ! mais pas le meme que celui de la feuille !
Qu'est ce que je peux être chiant :d :d :d
désolé :o