Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Activer la macro dès qu’un choix est défini dans le déroulant en B2

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Webperegrino

XLDnaute Impliqué
Supporter XLD
Le Forum,
Bonjour,

Voici une partie de la Feuille 23 d’une application qui fonctionne bien.
(Voir image Déroulant et Bouton)
La partie du tableau que vous voyez dans les images ci-jointes se modifiera en couleur et en contenu en fonction :
- du choix dans le déroulant placé en cellule B2 (par exemple, en choix, on passe ici de Joëlle à Yveline)
- puis par un clic sur le bouton « PLACER ». Ça marche !

(Voir Déroulant)
(Voir Bouton)

Le code du bouton « PLACER » est en Feuil23 :

Private Sub CommandButton1_Click()
FicheINDIVspect
End Sub.

Puis la macro de modification du tableau est dans le module n° 2 :

(Voir image Macro ci-jointe)

Peut-on réunir ces deux opérations dans la macro placée en Module 2 ?
Quel complément de code faut-il ?
J’ai pensé à quelque chose comme cela, mais je voudrais avoir votre confirmation :

Sub Fiche INDIVspect ()
If Not Intersect([B2], Target) Is Nothing Then Range (“D4:O4”.Select
Selection……..

Je pourrais ainsi supprimer le bouton « Placer » devenu inutile.
Peut-être d’ailleurs me faudra-t-il placer directement la macro dans Feuil23 quand vous m’aurez indiqué le complément de code ?
Qu’en pensez-vous ?
Cela est-il possible réellement ?

Merci pour votre soutien et surtout au Forum de m'avoir permis de trouver une formule géniale ! Elle me trouve les personnes en association avec celle que j'ai choisie dans le déroulant : le reste du tableau se complète ainsi de façon magique !

=SI(ESTERREUR(INDEX(CAIS;GRANDE.VALEUR(SI(ESTNA(EQUIV(D$4&LIGNE('Feuille Disponibilité'!B5:B21);'Feuille Disponibilité'!B5:B21&LIGNE('Feuille Disponibilité'!B5:B21);0));"";EQUIV(D$4&LIGNE('Feuille Disponibilité'!B5:B21);'Feuille Disponibilité'!B5:B21&LIGNE('Feuille Disponibilité'!B5:B21);0));LIGNE(INDIRECT("1:"&LIGNES('Feuille Disponibilité'!B5:B21))))));"";INDEX(CAIS;GRANDE.VALEUR(SI(ESTNA(EQUIV(D$4&LIGNE('Feuille Disponibilité'!B5:B21);'Feuille Disponibilité'!B5:B21&LIGNE('Feuille Disponibilité'!B5:B21);0));"";EQUIV(D$4&LIGNE('Feuille Disponibilité'!B5:B21);'Feuille Disponibilité'!B5:B21&LIGNE('Feuille Disponibilité'!B5:B21);0));LIGNE(INDIRECT("1:"&LIGNES('Feuille Disponibilité'!B5:B21)))))) à placer en Matricielle (Ctrl+Maj+Entr)


Webperegrino
 

Pièces jointes

  • Déroulant et Bouton.jpg
    14.8 KB · Affichages: 152
  • Bouton.jpg
    11.9 KB · Affichages: 101
  • Macro en module2.jpg
    40 KB · Affichages: 75
  • Déroulant et Bouton.jpg
    14.8 KB · Affichages: 184
  • Bouton.jpg
    11.9 KB · Affichages: 108
  • Déroulant et Bouton.jpg
    14.8 KB · Affichages: 182
  • Bouton.jpg
    11.9 KB · Affichages: 122
  • Déroulant.jpg
    13.2 KB · Affichages: 151
  • Déroulant.jpg
    13.2 KB · Affichages: 152
  • Déroulant.jpg
    13.2 KB · Affichages: 136
Dernière édition:
Re : Activer la macro dès qu’un choix est défini dans le déroulant en B2

Le Forum !
Je suis navré de la grandeur de police qui apparaît dans la fi du message précédent.
Excusez-vous pour cette erreur de manipulation.
Cordialement
Webperegrino
 
Re : Activer la macro dès qu’un choix est défini dans le déroulant en B2

Le Forum,
Bonjour Staple1600,
Oui, certainement, et c'est pour cela que je présentais mes excuses en partie 2.
Cordialement,
Webperegrino
 
Re : Activer la macro dès qu’un choix est défini dans le déroulant en B2

Bonjour Webperegrino, Bonjour Staple 🙂

@Webperegrino : tu peux éditer ton message et donc remodifier la taille des caractères de ton 1er message (en bas de celui-ci)
 
Re : Activer la macro dès qu’un choix est défini dans le déroulant en B2

Re

Webperegrino

Nous postâmes dans la même 33ème minute.
Ceci explique cela

Comme tototiti2008 (salutations) te le suggère tu peux éditer ton message pour que tout rentre dans l'ordre.
 
Re : Activer la macro dès qu’un choix est défini dans le déroulant en B2

Le Forum,
Je reprends l'édition de mon message, en espérant qu'il sera bien retranscrit cette fois-ci. Désolé.

Voici une partie de la Feuille 23 d’une application qui fonctionne bien.
(Voir image Déroulant et Bouton)
La partie du tableau que vous voyez dans les images ci-jointes se modifiera en couleur et en contenu en fonction :
- du choix dans le déroulant placé en cellule B2 (par exemple, en choix, on passe ici de Joëlle à Yveline)
- puis par un clic sur le bouton « PLACER ». Ça marche !

(Voir Déroulant)
(Voir Bouton)

Le code du bouton « PLACER » est en Feuil23 :

Private Sub CommandButton1_Click()
FicheINDIVspect
End Sub.

Puis la macro de modification du tableau est dans le module n° 2 :

(Voir image Macro ci-jointe)

Peut-on réunir ces deux opérations dans la macro placée en Module 2 ?
Quel complément de code faut-il ?
J’ai pensé à quelque chose comme cela, mais je voudrais avoir votre confirmation :

Sub Fiche INDIVspect ()
If Not Intersect([B2], Target) Is Nothing Then Range (“D4:O4”.SelectSelection……..

Je pourrais ainsi supprimer le bouton « Placer » devenu inutile.
Peut-être d’ailleurs me faudra-t-il placer directement la macro dans Feuil23 quand vous m’aurez indiqué le complément de code ?
Qu’en pensez-vous ?
Cela est-il possible réellement ?

Merci pour votre soutien et surtout au Forum de m'avoir permis de trouver une formule géniale ! Elle me trouve les personnes en association avec celle que j'ai choisie dans le déroulant : le reste du tableau se complète ainsi de façon magique !

=SI(ESTERREUR(INDEX(CAIS;GRANDE.VALEUR(SI(ESTNA(EQ UIV(D$4&LIGNE('Feuille Disponibilité'!B5:B21);'Feuille Disponibilité'!B5:B21&LIGNE('Feuille Disponibilité'!B5:B21);0));"";EQUIV(D$4&LIGNE('Feu ille Disponibilité'!B5:B21);'Feuille Disponibilité'!B5:B21&LIGNE('Feuille Disponibilité'!B5:B21);0));LIGNE(INDIRECT("1:"&LIG NES('Feuille Disponibilité'!B5:B21))))));"";INDEX(CAIS;GRANDE.V ALEUR(SI(ESTNA(EQUIV(D$4&LIGNE('Feuille Disponibilité'!B5:B21);'Feuille Disponibilité'!B5:B21&LIGNE('Feuille Disponibilité'!B5:B21);0));"";EQUIV(D$4&LIGNE('Feu ille Disponibilité'!B5:B21);'Feuille Disponibilité'!B5:B21&LIGNE('Feuille Disponibilité'!B5:B21);0));LIGNE(INDIRECT("1:"&LIG NES('Feuille Disponibilité'!B5:B21)))))) à plaer en Matricielle (Ctrl+Maj+Entr)
 

Pièces jointes

  • Déroulant.jpg
    13.2 KB · Affichages: 97
  • Bouton.jpg
    11.9 KB · Affichages: 96
  • Déroulant et Bouton.jpg
    14.8 KB · Affichages: 91
  • Déroulant.jpg
    13.2 KB · Affichages: 99
  • Bouton.jpg
    11.9 KB · Affichages: 92
  • Déroulant et Bouton.jpg
    14.8 KB · Affichages: 84
  • Déroulant.jpg
    13.2 KB · Affichages: 90
  • Bouton.jpg
    11.9 KB · Affichages: 86
  • Déroulant et Bouton.jpg
    14.8 KB · Affichages: 90
Re : Activer la macro dès qu’un choix est défini dans le déroulant en B2

Le Forum,
Staple1600 et Tototiti2008,
Vous m'avez appris une nouvelle fonction pour la gestion des messages dans Excel-download et vous en remercie.
Je renouvelle toutefois ma requête à propos d'une éventuelle mise en place dans ma macro d'un complément de code qui pourrait éviter l'emploi du bouton "PLACER" à chaque nouveau choix pris dans la cellule B2.
Je crains tellement de "bugguer" ma macro qui fonctionne correctement actuellement, mais je désire améliorer ainsi son fonctionnement,
croyez-vous que la fonction complémentaire
If Not Intersect([B2], Target) Is Nothing Then
... ferait l'affaire, avec un End If supplémentaire pour 'boucler' en fin de macro ?
Merci
 
Re : Activer la macro dès qu’un choix est défini dans le déroulant en B2

Le Forum,
La solution était :
'Private Sub CommandButton1_Click() 'LE BOUTON DEVIENT INUTILE
'FicheINDIVspect
'End Sub
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect([D4:O4], Target) Is Nothing Then
On Error Resume Next
Target.Interior.ColorIndex = [Couleur].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
Target.Font.ColorIndex = [Couleur].Find(Target, LookAt:=xlWhole).Interior.FontIndex
End If
If Not Intersect([D26:N26], Target) Is Nothing Then
On Error Resume Next
Target.Interior.ColorIndex = [Couleur].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
Target.Font.ColorIndex = [Couleur].Find(Target, LookAt:=xlWhole).Interior.FontIndex
End If
'**** VIENT REMPLACER LE BOUTON <PLACER>
If Not Intersect([B2], Target) Is Nothing Then
FicheINDIVspect 'Ma macro de placement
End If
End Sub

Bonne soirée
Webperegrino
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
Réponses
6
Affichages
2 K
Réponses
1
Affichages
956
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…