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

[Résolu]
Signaler
Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012
-
Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012
-
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

Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012

Bonsoir,

effectivement!! Pourquoi faire simple ...

Merci bcp!
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
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)
Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012

Great!

Ca marche merci beaucoup!
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
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)
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
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.