Tout d’abord, je tiens à m’excuser pour ma réponse tardive, j’ai été confronté à des contraintes personnelles imprévues. Merci de votre compréhension.
Je vous remercie sincèrement pour vos aides et votre patience. J’ai pris le temps de tester vos propositions, et voici mes retours :
taz067 : Merci pour votre suggestion. Malheureusement, comme la colonne contenant la liste déroulante se trouve au milieu de plusieurs colonnes, il m’est difficile d’afficher le texte explicatif à côté.
Cow18 : La formule XLookup n’est pas compatible avec ma version Excel 2019. s = WorksheetFunction.XLookup(c.Value, Range("F5:F26"), Range("G5:G26"), "?", 0)
Zebulon : les info-bulles restent fixes et ne varient pas en fonction du choix dans la liste de validation.
Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, c, s, i
Set iSect = Intersect(Target, Range("K5,K16")) 'ces 2 cellules
If iSect Is Nothing Then Exit Sub
For Each c In iSect.Cells
On Error Resume Next
i = 0: i = c.SpecialCells(xlCellTypeSameValidation).Count
On Error GoTo 0
If i > 0 Then
If c.Value = "" Then
s = "Choisir un " & IIf(c.Row = 5, "paiement", "tag")
Else
s = "???"
On Error Resume Next
s = WorksheetFunction.VLookup(c.Value, Range("F5:G26"), 2, 0) 'avec vlookup au lieu de Xlookup
On Error GoTo 0
End If
c.Validation.InputTitle = "info-bull"
c.Validation.InputMessage = s
Application.Goto c, 0
End If
Next
End Sub
plusieurs milliers de ligne, oei, c’est autant de lignes au lieu de F5:G26 ?
alors, je pense que vous devez modifier ceci
Set iSect = Intersect(Target, Range(« K5:K50000,M5:M50000 »)) 'ces 2 plages et milliers de lignes
et puis colonne K = colonne 11 et en supposant que vos paiements sont dans cette colonne
s = "Choisir un " & IIf(c.column = 11, « paiement », « tag »)