Bonjour Damien, le Forum
Je ne télécharge pas les fichiers (règles de sécurité du bureau) mais je me figure bien ton exemple.
Pour un exemple simple :
Un Classeur Vierge
En Feuil1 tu mets ce code en Private Module
En Feuil2 tu saisis des données de A1:B50
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range, Cell As Range
If Target.Address = "$A$1" Then
For Each Cell In Sheets("Feuil2").Range("A1:B50")
If UCase(Target.Text) = UCase(Cell.Text) Then
MsgBox "Matching " & Target.Value & " with " & Cell.Offset(0, 1)
End If
Next
End If
End Sub
En Feuil1 Cellule "A1", Tu saisis une des données figurant dans la colonne "A" de la Feuil2.
Tu devrais avoir un Message Box t'indiquant la valeur retournée. (Attention autant de message que de fois où la valeur sera trouvée en, colonne "A" de Feuil2.)
Il te suffira ensuite d'adapter ce code à un UserForm... Pour ce Faire je te suggère de Déclarer une Variable Public de Type String que tu déclareras en haut d'un module standard ("Module1" par exemple) voici la syntax :
Public TheMatch As String
Pour adapter ceci au code ci-dessus : tu remplaces la ligne "MsgBox..." par :
TheMatch = Cell.Offset(0, 1)
Et toujours dans le code du dessus tu ajoutes :
UserForm1.Show
Après le Next et Avant le End If
Et dans le Private Module du UserForm (imaginons que ce soit un TextBox)
Private Sub UserForm_Initialize()
TextBox1 = TheMatch
End Sub
Une démo assez complète sur un sujet assez similaire... :
=> Démo Téléchargeable
USF_ListBox_A_La_Volee.zip (48k)
=> Le Fil de Discussion
DEMO Userform ListBox éphémère / Créé de toute pièce à la Volée en VBA !! (qui rappellera des souvenirs à un certain petit lapin bleu !! lol)
Bonne Fin d'Aprèm
@+Thierry