Liste de validation et macro

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
D
Dadams51
Membre habitué
Membre habitué
Messages : 117
Appréciation reçue : 1
Inscrit le : 10 avril 2016
Version d'Excel : 2016 FR

Message par Dadams51 » 23 novembre 2017, 19:17

Bonsoir,

Il existe dans VBA des procédures évènementielles dont celle-ci :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

permettant le déclenchement d'un évènement à chaque nouvelle sélection de cellule.

Je cherche à pouvoir déclencher un évènement en changeant le champs d'une liste de validation. Voir mon exemple ci-joint. Actuellement, je fait apparaître la photo correspondant au prénom (de L1 à O1) en cliquant sur la cellule.
Je souhaite pouvoir faire apparaître la photo en changeant le prénom de la liste de validation.
(a vous de recréer les liens des photos sur votre poste)

Merci d'avance.

Dadams
Version-DL.xlsm
(15.98 Kio) Téléchargé 12 fois
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 23 novembre 2017, 19:48

Bonsoir,

Utilises la procédure événementielle "Worksheet_Change()" !
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
E
ExcelCoreGame
Membre fidèle
Membre fidèle
Messages : 457
Appréciations reçues : 15
Inscrit le : 24 octobre 2017
Version d'Excel : 2007FR

Message par ExcelCoreGame » 23 novembre 2017, 19:57

Salut,

En effet Theze à raison c'est plutôt dans le Change :sp:

Ou se situe ton problème en fait? tu ne sais pas faire une liste de validation car ta macro à l'air niquel

Dans la cellule que tu veux par exemple ta L1
Données => Validation des données => Validation des données => Option/Autoriser : Liste => Source : Pierre;Paul;Jacques

Ta macro de la case L1 devrait fonctionner sans soucis si tu la mets dans ton Worksheet_Change

Par contre je vois un problème pointer le bout de son nez, tu gères l'ajout d'image ... sans t'occuper de les détruire fait attention ^^
Si on change 10 fois entre Pierre et Paul tu auras ppllleeeeinn de photos, détruit l'ancienne photo qui existe avant de recharger une nouvelle

ECG
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'050
Appréciations reçues : 387
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 23 novembre 2017, 20:10

Bonjour

Un essai à tester. Te convient-il ?
Bye !
Version-DL v1.xlsm
(20.68 Kio) Téléchargé 15 fois
D
Dadams51
Membre habitué
Membre habitué
Messages : 117
Appréciation reçue : 1
Inscrit le : 10 avril 2016
Version d'Excel : 2016 FR

Message par Dadams51 » 23 novembre 2017, 20:29

Merci pour vos réponses,
mais effectivement les images se superposent...comment l'éviter ?

Je pensais mettre ça avant le IF, mais ça ne marche pas ::~

For Each Shape In ActiveSheet.Shapes
Shape.Delete
Next

Salutations,

Dadams

Bonsoir GMB,

Ta solution ne marche pas chez moi... ::( Il ne se passe rien au changement de champ de liste de validation). Et je ne vois pas à quoi est liée la petite procédure Evenement()...

A+

Dadams
E
ExcelCoreGame
Membre fidèle
Membre fidèle
Messages : 457
Appréciations reçues : 15
Inscrit le : 24 octobre 2017
Version d'Excel : 2007FR

Message par ExcelCoreGame » 23 novembre 2017, 22:37

ta boucle fonctionne très bien chez moi, bizarre
Tu as la bonne feuille d'active?

Sinon quand tu insères l'image tu pourrais la renommer pour lui donner toujours le même nom genre IMAGE et comme ca avant ta nouvelle insertion tu fais un
sheets("Feuil1").shapes("IMAGE").delete
ECG
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message