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

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
    Déroulant et Bouton.jpg
    14.8 KB · Affichages: 152
  • Bouton.jpg
    Bouton.jpg
    11.9 KB · Affichages: 100
  • Macro en module2.jpg
    Macro en module2.jpg
    40 KB · Affichages: 75
  • Déroulant et Bouton.jpg
    Déroulant et Bouton.jpg
    14.8 KB · Affichages: 183
  • Bouton.jpg
    Bouton.jpg
    11.9 KB · Affichages: 108
  • Déroulant et Bouton.jpg
    Déroulant et Bouton.jpg
    14.8 KB · Affichages: 182
  • Bouton.jpg
    Bouton.jpg
    11.9 KB · Affichages: 121
  • Déroulant.jpg
    Déroulant.jpg
    13.2 KB · Affichages: 150
  • Déroulant.jpg
    Déroulant.jpg
    13.2 KB · Affichages: 151
  • Déroulant.jpg
    Déroulant.jpg
    13.2 KB · Affichages: 135
Dernière édition:

tototiti2008

XLDnaute Barbatruc
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)
 

Staple1600

XLDnaute Barbatruc
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.
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
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
    Déroulant.jpg
    13.2 KB · Affichages: 97
  • Bouton.jpg
    Bouton.jpg
    11.9 KB · Affichages: 95
  • Déroulant et Bouton.jpg
    Déroulant et Bouton.jpg
    14.8 KB · Affichages: 91
  • Déroulant.jpg
    Déroulant.jpg
    13.2 KB · Affichages: 99
  • Bouton.jpg
    Bouton.jpg
    11.9 KB · Affichages: 91
  • Déroulant et Bouton.jpg
    Déroulant et Bouton.jpg
    14.8 KB · Affichages: 84
  • Déroulant.jpg
    Déroulant.jpg
    13.2 KB · Affichages: 89
  • Bouton.jpg
    Bouton.jpg
    11.9 KB · Affichages: 86
  • Déroulant et Bouton.jpg
    Déroulant et Bouton.jpg
    14.8 KB · Affichages: 89

Webperegrino

XLDnaute Impliqué
Supporter XLD
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
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
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
 

Discussions similaires

Statistiques des forums

Discussions
312 525
Messages
2 089 335
Membres
104 123
dernier inscrit
kiosqueexcel