Bouton macro
Résolu/Fermé
A voir également:
- Bouton macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Réinitialiser chromecast sans bouton - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
5 réponses
tchernosplif
Messages postés
600
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
21 juin 2015
244
6 avril 2011 à 11:00
6 avril 2011 à 11:00
Bonjour,
Je viens de faire le test et ça fonctionne avec un niveau de sécurité moyen.
toutes les cellules sont verrouillés sauf A1:B3, et a deuxième case est cochée lors de la protection de la feuille. (sélectionner les cellules non verrouillées)
1 bouton:Private Sub CommandButton1_Click()
efface
End Sub
1 macro:
Sub efface()
Range("A1:B3").Select
Selection.ClearContents
End Sub
Je viens de faire le test et ça fonctionne avec un niveau de sécurité moyen.
toutes les cellules sont verrouillés sauf A1:B3, et a deuxième case est cochée lors de la protection de la feuille. (sélectionner les cellules non verrouillées)
1 bouton:Private Sub CommandButton1_Click()
efface
End Sub
1 macro:
Sub efface()
Range("A1:B3").Select
Selection.ClearContents
End Sub
Re bonjour,
Oui c'est ça! En protection moyen, il demande une confirmation d'activation de macro avant d'ouvrir le fichier.
Pas très rassurant pour Pierre, Paul ou Jacques, alors je laisse en protection faible.
.
Question subsidiaire:
comment faire pour que le bouton de la macro n'apparaisse que lorsque mes 20 cellules sont renseignées et disparaisse après avoir cliqué dessus?
Est ce possible ?
.
Merci à vous
Fred
Oui c'est ça! En protection moyen, il demande une confirmation d'activation de macro avant d'ouvrir le fichier.
Pas très rassurant pour Pierre, Paul ou Jacques, alors je laisse en protection faible.
.
Question subsidiaire:
comment faire pour que le bouton de la macro n'apparaisse que lorsque mes 20 cellules sont renseignées et disparaisse après avoir cliqué dessus?
Est ce possible ?
.
Merci à vous
Fred
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
6 avril 2011 à 14:11
6 avril 2011 à 14:11
Oui c'est possible.
Pour cela, il faudrait que tu nous communiques l'adresse des cellules concernées.
Le principe :
Lorsque l'on charge le classeur, la propriété "visible" du bouton doit être à "false" et lorsque toutes les cellules sont différentes de "" alors la propriété "visible" du bouton devient "true" sinon "false". Quelque chose comme :
Pour cela, il faudrait que tu nous communiques l'adresse des cellules concernées.
Le principe :
Lorsque l'on charge le classeur, la propriété "visible" du bouton doit être à "false" et lorsque toutes les cellules sont différentes de "" alors la propriété "visible" du bouton devient "true" sinon "false". Quelque chose comme :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("D6") <> "" And Range("D7") <> "" Then CommandButton1.Visible = True Else CommandButton1.Visible = False End If End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
6 avril 2011 à 14:22
6 avril 2011 à 14:22
Bonjour,
Excuszez l'incruste
de mémoire,
Sur 2003, il y a la possibilité de créer un certificat en allant dans outils-??? de VBE
la première qu'un utilisateur ouvre le classeur, il lui est demandé si on peut faire confiance
si oui, il n'est plus demandé d'activer les macros...
Excuszez l'incruste
de mémoire,
Sur 2003, il y a la possibilité de créer un certificat en allant dans outils-??? de VBE
la première qu'un utilisateur ouvre le classeur, il lui est demandé si on peut faire confiance
si oui, il n'est plus demandé d'activer les macros...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
6 avril 2011 à 14:27
6 avril 2011 à 14:27
Salut Michel,
Tout à fait, dans outils/options onglet "sécurité".
Tout à fait, dans outils/options onglet "sécurité".
Bonjour pijaku,
http://www.cijoint.fr/cjlink.php?file=cj201104/cij8abs2OO.xls
J'ai vite fait un extrait du fichier.
Les cases jaunes sont celles qui sont uniquement accessibles (après protection du fichier) par les utilisateurs.
La case bleue (REINITIALISER) représente le bouton de la macro que je voudrais faire apparaitre puis disparaitre en fonction des cases jaunes.
.
Je suis impatient de découvrir ta méthode.
Fred
http://www.cijoint.fr/cjlink.php?file=cj201104/cij8abs2OO.xls
J'ai vite fait un extrait du fichier.
Les cases jaunes sont celles qui sont uniquement accessibles (après protection du fichier) par les utilisateurs.
La case bleue (REINITIALISER) représente le bouton de la macro que je voudrais faire apparaitre puis disparaitre en fonction des cases jaunes.
.
Je suis impatient de découvrir ta méthode.
Fred
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
6 avril 2011 à 14:52
6 avril 2011 à 14:52
Salut,
Quand on dit bouton, il s'agit en général d'un bouton, pas de cellules fusionnées...
Bref, ci-joint un exemple avec un label à la place du bouton qui n'en était pas un...
Quand on dit bouton, il s'agit en général d'un bouton, pas de cellules fusionnées...
Bref, ci-joint un exemple avec un label à la place du bouton qui n'en était pas un...
Salut pijaku,
Ton exemple sans bouton de macro me plait beaucoup, mais fichtre, je n'arrive pas à comprendre comment tu as procédé.
Tu veux bien éclairer ma lanterne SVP
Fred
Ton exemple sans bouton de macro me plait beaucoup, mais fichtre, je n'arrive pas à comprendre comment tu as procédé.
Tu veux bien éclairer ma lanterne SVP
Fred
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
7 avril 2011 à 08:42
7 avril 2011 à 08:42
Salut Fred,
Bien sur.
S'il n'y a pas de bouton de commande, il y a tout de même un label (étiquette de la barre d'outils "boite à outils contrôle"). J'ai réglé la propriété "visible" de ce label sur False par défaut. Donc il ne s'affichera que sur certaines conditions.
Les conditions pour qu'il soit visible, sont les tiennes : "si mes 20 cellules sont remplies". Là il faut donc agir sur le code vba de la feuille concernée, sur un événement de cette feuille même, pour que la macro (afficher le label) se déclenche automatiquement. J'ai choisit l'événement Selection_change (lorsque tu changes de cellule active dans ta feuille). Pour y accéder (au code vba), clic droit sur l'onglet de la feuille concernée et "visualiser le code". Dans le menu "général" on choisit : Worksheet" et dans le menu "déclaration" : "Selection_change". On obtient :
On souhaite que, SI les cellules sont remplies, alors il s'affiche, s'il y en a une de vide, alors il reste masqué. J'ai préféré donc boucler sur toutes les cellules concernées et si une est vide alors on ne fait rien. En fin de boucle, si aucune cellule vide n'a été trouvé, alors il affiche le label. Cela donne en VBA :
A chaque fois que tu changes de cellule active dans ta feuille, le code vérifie la présence d'une cellule vide dans ta plage. S'il y en a une, il masque le label...
Reste le code du "bouton" : [j'ai modifié très légèrement ce code, donc tu peux le copier/coller à la place de celui dans ton fichier ou ajoute simplement la ligne de code : Range("K7:L7").Select]
Bien sur.
S'il n'y a pas de bouton de commande, il y a tout de même un label (étiquette de la barre d'outils "boite à outils contrôle"). J'ai réglé la propriété "visible" de ce label sur False par défaut. Donc il ne s'affichera que sur certaines conditions.
Les conditions pour qu'il soit visible, sont les tiennes : "si mes 20 cellules sont remplies". Là il faut donc agir sur le code vba de la feuille concernée, sur un événement de cette feuille même, pour que la macro (afficher le label) se déclenche automatiquement. J'ai choisit l'événement Selection_change (lorsque tu changes de cellule active dans ta feuille). Pour y accéder (au code vba), clic droit sur l'onglet de la feuille concernée et "visualiser le code". Dans le menu "général" on choisit : Worksheet" et dans le menu "déclaration" : "Selection_change". On obtient :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
On souhaite que, SI les cellules sont remplies, alors il s'affiche, s'il y en a une de vide, alors il reste masqué. J'ai préféré donc boucler sur toutes les cellules concernées et si une est vide alors on ne fait rien. En fin de boucle, si aucune cellule vide n'a été trouvé, alors il affiche le label. Cela donne en VBA :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Plage As Range, Cell As Range 'On définit les variables 'on affecte à la variable Plage le Range concerné (toutes tes cellules) 'tu peux en ajouter ou en enlever comme tu veux Set Plage = Range("K6,K7,K9,K10,K11,K12,K13,K14,M9,M10,N11,N12,C16,D23:M23") 'pour tous les range dans les cellules de la plage For Each Cell In Plage.Cells 'si la cellule est vide alors If Cell = "" Then 'le label est masqué Label1.Visible = False 'on quitte la procédure Exit Sub End If 'cellule suivante (si l'on n'est pas sorti) Next 'ici il a bouclé sur toutes les cellules, s'il n'est pas sorti avant 'en fait si le code arrive à ce point, c'est qu'il n'a rencontré aucune cellule vide donc 'on affiche le label Label1.Visible = True End Sub
A chaque fois que tu changes de cellule active dans ta feuille, le code vérifie la présence d'une cellule vide dans ta plage. S'il y en a une, il masque le label...
Reste le code du "bouton" : [j'ai modifié très légèrement ce code, donc tu peux le copier/coller à la place de celui dans ton fichier ou ajoute simplement la ligne de code : Range("K7:L7").Select]
Private Sub Label1_Click() 'lors d'un clic sur le label 'on efface le contenu de la plage Range("K6:L6,K7:L7,K9:L9,M9:N9,K10:L10,M10:N10,K11:L11,K12:L12,K13:L13,K14:L14,N11:O11,N12:O12,C16:R18,D23:M23").ClearContents 'on sélectionne 2 cellules différentes à la suite pour être sur de masquer le label Range("K7:L7").Select Range("K6:L6").Select End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re Salut pijaku,
Après quelques heures de vaines tentatives, je me tourne à nouveau vers toi.
C'est plus clair que hier mais je ne comprend pas comment tu as créer le "bouton" REINITIALISER.
J'ai essayé de faire copier/coller du texte de ta macro, mais comme je n'ai plus de bouton je ne vois pas comment attribuer cette macro.
Je crois que tu as compris que je suis un peu perdu.
Merci de ton aide
Fred
Après quelques heures de vaines tentatives, je me tourne à nouveau vers toi.
C'est plus clair que hier mais je ne comprend pas comment tu as créer le "bouton" REINITIALISER.
J'ai essayé de faire copier/coller du texte de ta macro, mais comme je n'ai plus de bouton je ne vois pas comment attribuer cette macro.
Je crois que tu as compris que je suis un peu perdu.
Merci de ton aide
Fred
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
7 avril 2011 à 14:46
7 avril 2011 à 14:46
Pour créer le "bouton" :
"Affichage" "barre d'outils" "boite à outils contrôle" doit être cochée
Dans cette barre d'outils, cherche "etiquette".
Dessine une étiquette (label) sur ta feuille et clique droit dessus/propriétés
La tu verras visible true etc...
"Affichage" "barre d'outils" "boite à outils contrôle" doit être cochée
Dans cette barre d'outils, cherche "etiquette".
Dessine une étiquette (label) sur ta feuille et clique droit dessus/propriétés
La tu verras visible true etc...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
7 avril 2011 à 15:48
7 avril 2011 à 15:48
clique droit dessus/propriétés
Change la propriété font, en fait à côté de font, tu as un cadre avec un nom de police dedans. Lorsque tu cliques sur ce nom de police, 3 points apparaissent, cliques dessus...
Change la propriété font, en fait à côté de font, tu as un cadre avec un nom de police dedans. Lorsque tu cliques sur ce nom de police, 3 points apparaissent, cliques dessus...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
7 avril 2011 à 16:12
7 avril 2011 à 16:12
Dans la même barre d'outils, tu va trouver le bouton : "mode création", cliques dessus...
6 avril 2011 à 11:03
ça fonctionne également sans le Select :