j'aimerai avoir de l'aide sur une macro qui permettrait d'afficher dans une cellule le texte contenu dans un tableau en fonction d'une valeur.
Exemple :
Dans une feuille appelée "codes banques":
la colonne A contient les codes banques
la colonne B contient le nom des banques correspondant aux codes banques de la colonne A
Dans une feuille appelée "Menu"
nous saisissons dans la cellule I12 le code banque voulu
mon souhait serait que lorsque je saisie un code banque dans cette cellule, la cellule du dessus (I11) soit modifiée et contienne le nom de la banque correspondant.
Merci de votre aide, je suis débutant en VB et ca fait quelques heures que j'essaye pleins de codes!
A voir également:
[Déplacé VB6 --> VBA] aide sur une macro copier/coller
Salut
Voilà un exemple :
Sur ma feuille, j'ai désigné :
A1 : La cellule dans laquelle je saisie le code
A6 à A8 contiennent 3 codes : 1, 2 et 3
B6 à B8 contiennent les textes associés : Salut, Bonjour et Coucou
- Ouvre l'éditeur VBA (Alt-F11)
- Double-clique sur ta feuille
- Dans la ComboBox de gauche de cette feuille de code, choisis Worksheet
- Dans la ComboBox de droite de cette feuille de code, choisis Change
- Colle ce code :
If Target.Address = "$A$1" Then
' Le changement a eu lieu dans ma cellule de saisie
Dim maCell As Object
' Recherche le code saisi parmi la liste des codes, colonne A
Set maCell = Range("A6:A8").Find(Target.Value, , xlValues)
If Not maCell Is Nothing Then
' J'ai trouvé un code
' Je recopie le texte de la cellule de droite vers _
la cellule de droite de la saisie
Target.Offset(0, 1).Value = maCell.Offset(0, 1).Value
End If
End If
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
PS : Je viens de voir que si tu cherches "1" alors que tu as "10" dans ta liste, la recherche s'arrête sur le "10" : Il faudra donc tester la vraie valeur de maCell avant de continuer.
Si ce n'est pas la valeur recherchée, continuer la recherche.
Aller, c'est pas tous les jours mercredi :
If Target.Address = "$A$1" Then
' Le changement a eu lieu dans ma cellule de saisie
Dim maCell As Object
' Recherche le code saisi parmi la liste des codes, colonne A
Set maCell = Range("A6:A8").Find(Target.Value, , xlValues)
If Not maCell Is Nothing Then
' J'ai trouvé un code
Do While maCell.Value <> Target.Value
' Recherche le suivant tant que ce n'est pas le _
chiffre exact que je cherche
Set maCell = Range("A6:A8").FindNext(maCell)
DoEvents
Loop
' Je recopie le texte de la cellule de droite vers _
la cellule de droite de la saisie
Target.Offset(0, 1).Value = maCell.Offset(0, 1).Value
End If
End If
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)