RechercheV à plusieurs valeurs sans menu déroulant

mark_25 Messages postés 5 Statut Membre -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai trouvé sur ce forum une fonction qui permet de faire un choix via menu déroulant de l'assignation d'une commune plutôt qu'une autre lorsqu'il y a un même code postal pour plusieurs villes a l'adresse: https://forums.commentcamarche.net/forum/affich-26283089-recherchev-code-postaux-villes-excel-mac-2011#p26322178

J'aimerais savoir si il est possible au lieu d'avoir les données recherchées en menu déroulant,d'avoir une fonction qui puisses les inséré dans la colonne de la fonction.
Je vous donne un exemple de ce que je cherche à produire:https://www.cjoint.com/?BJzkE0IJP93
Merci
A voir également:

3 réponses

Morgothal Messages postés 1350 Statut Membre 184
 
Bonjour,
Pourquoi ne pas trier selon la première colonne ? Faut il absolument qu'une seule occurrence de la première colonne soit affichée ?

Sinon une autre solution est d'utiliser un tableau croisé dynamique.

Ces solutions sont bien moins compliqué qu'un RECHERCHEV pour cette tâche ;)
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Re,

C'est sûr que trier par A et B est le plus simple...
proposition en vba : https://www.cjoint.com/?BJzoYtBJ3oj

eric
0
mark_25 Messages postés 5 Statut Membre
 
Voilà c'est exactement ça eriic. Peut-être que j'avais mal exprimé ma requête mais c'est exactement ce que je recherche. Mais bon puisque je ne suis pas un pro en VBA, si tu pouvais m'envoyer les instructions liées au programme sa me simplifierai la vie pour pouvoir l'adapté à mon tableau...
Et merci encore.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Alt+F11 pour afficher l'éditeur VBE.

Le code commenté :
Sub liste()
    Dim lig As Long, clé As String
    lig = Cells(Rows.Count, 1).End(xlUp).Row ' dernière ligne occupée en colonne A
    Application.ScreenUpdating = False ' ne pas rafraichir l'écran
    [A1].Resize(lig, 2).Copy Destination:=[G1] ' copier A1:BdernièreLigne en G1
    [G1].Sort Key1:=Range("G2"), Order1:=xlAscending, Header:=xlYes ' trier
    clé = Cells(2, 7) ' mémoriser 'origine'
    For lig = 3 To lig ' pour chaque ligne
        If Cells(lig, 7) = clé Then ' si même origine que ligne précédente
            Cells(lig, 7) = "" ' on effface
        Else
            clé = Cells(lig, 7) ' sinon mémorisation nouvelle origine
        End If
    Next lig ' ligne suivante
    Application.ScreenUpdating = True ' rétablir rafraichissement écran
End Sub

eric
0
mark_25 Messages postés 5 Statut Membre
 
C'est super tu m'as enlevé une grande épine du pied.
Vraiment merci
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
ok, je met en résolu pour toi (en haut vers ton titre)
eric
0