[Déplacé VB6 --> VBA] aide sur une macro copier/coller

Résolu
sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012 - 21 oct. 2009 à 11:35
sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012 - 22 oct. 2009 à 22:40
Bonjour,

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!

5 réponses

sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012
22 oct. 2009 à 22:40
Bonsoir,

effectivement!! Pourquoi faire simple ...

Merci bcp!
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 oct. 2009 à 12:21
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)
0
sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012
21 oct. 2009 à 13:27
Great!

Ca marche merci beaucoup!
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 oct. 2009 à 14:43
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
22 oct. 2009 à 21:53
et parce qu'on est Jeudi...

Au lieu d'une macro bien lourde, pourquoi ne pas utiliser directement les formules du tableur ? hein ?

Donc dans I11 (ou ailleurs), mettre :

=RECHERCHEV(I12;'codes banques'!A:B;2;FAUX)


C'est beaucoup plus simple, nan ?

Amicalement,
Us.
0
Rejoignez-nous