Utiliser un MgsBox ou UserForm.

  • Initiateur de la discussion Initiateur de la discussion guy72
  • Date de début Date de début

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 !

guy72

XLDnaute Impliqué
Bonjour,
Un mot est trouvé en A24, je souhaiterais voir apparaître la définition de ce mot (qui se trouve en Feuil2) dans une fenêtre tel que MsgBox ou UserForm ou ........(le plus facile).
Pour l'instant je le fais avec la formule ci-dessous, mais je préfairereais
une fenêtre.
'=SI($A$24=$AZ$18;RECHERCHE($AZ$18;Mots;Définitions);"").
Avez vous une solution ?
Merci de votre aide.
Guy
 
Re : Utiliser un MgsBox ou UserForm.

Bonjour

Quel est l'évènement qui donnerait l'ordre d'afficher le message ?

JP

Bonjour jp14
Comme le dit la formule.
Si le mot en A42 est = au mot en AZ18 alors il déclenche la fenêtre qui montre la définition de ce mot.
Le mot se trouve dans une liste de 1000 mots en colonne "A" de la Feuil2.
La définition se trouve en colonne "B" de la Feuil2.
 
Re : Utiliser un MgsBox ou UserForm.

Salut Guy72, jp14, le Forum

Regarde si tu peux t'inspirer du Fichier joint
A l'invitation de l'InputBox écrit un chiffre entre un et quinze en Français Heu!...enlettrelechiffre 😀
tu aura la traduction de ce chiffre en Anglais dans un MsgBox

Bonne Journée
 

Pièces jointes

Dernière édition:
Re : Utiliser un MgsBox ou UserForm.

Bonjour à tous,
La 2ème version deDUll me convient en modisfiant un peu.
Mais ce que je ne comprends pas, c'est que le fenêtre n'apparais pas dès que le mot est dans le cellule, il faut encore sélectionner la cellule dommage.
Comment faire pour éviter ça ?
 
Re : Utiliser un MgsBox ou UserForm.

Bonjour à tous

En utilisant cette macro on obtient un message

Code:
Private Sub Worksheet_Calculate()
     For Each Cell In Sheets("Feuil2").Range("A1:A9")
     If Sheets("Feuil1").Range("A24").Value = Cell.Value Then MsgBox Cell.Offset(, 2), , "Définition :"
   Next
End Sub

Inconvénient le message sera affiché à chaque calcul.
On peut éventuellement supprimer ce fonctionnement en mémorisant la valeur de la cellule dans une variable publique et au niveau de la macro on vérifie si la valeur à changée.

JP
 
Dernière édition:
Re : Utiliser un MgsBox ou UserForm.

Re,

Code:
Dim Cell As Range
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Or Target.Address <> [COLOR=Red][B]"$A$24" [/B][/COLOR]Then Exit Sub
   For Each Cell In Sheets("Feuil2").Range("A1:A8")
     If Target.Value = Cell.Value Then MsgBox Cell.Offset(, 2), , "Définition :"
   Next
End Sub
[B][COLOR=Red]* éléments à adapter ![/COLOR][/B]
C'est l'adresse de la cellule qui change. Si la saisie se fait en O51, écrit $O$51.
 
Re : Utiliser un MgsBox ou UserForm.

Re,

Code:
Dim Cell As Range
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Or Target.Address <> [COLOR=Red][B]"$A$24" [/B][/COLOR]Then Exit Sub
   For Each Cell In Sheets("Feuil2").Range("A1:A8")
     If Target.Value = Cell.Value Then MsgBox Cell.Offset(, 2), , "Définition :"
   Next
End Sub
[B][COLOR=Red]* éléments à adapter ![/COLOR][/B]
C'est l'adresse de la cellule qui change. Si la saisie se fait en O51, écrit $O$51.

Re..

La cellule ou je saisie est O51.
La cellule qui d'éclenche doit être la cellule A24 et cette cellule à la formule suivante = O51.
Mais ça ne déclenche pas la fenêtre.
Pourquoi ?
 
Re : Utiliser un MgsBox ou UserForm.

Bonsoir

Une piste
Le changement de la valeur de la cellule est du au calcul lancé par le système d'excel, la procédure "Private Sub Worksheet_Change(ByVal Target As Range)" ne doit être lancé que si la cellule active change de valeur .

A vérifier.

JP
 
- 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

Retour