Vba recherche selection copier coller

Bonjour,

je vais expliquer mon problème directement :

j'ai dans une feuille1 une matrice reprsentant en ligne 1 des villes
en colone 1 ces meme villes et dans les cellules entre cette ligne et cette colone g le nbre de km entre ses villes comme si dessous:

villes bordeaux auxere lyon marseille grenoble
bordeaux 0 61 37 59 88
auxere 61 0 36 103 78
lyon 37 36 0 103 123
marseille 59 103 103 0 99
grenoble 88 78 123 99 0

comment faire pour que lorsque je rentre le nom de la ville dans une cellule d'une autre feuille (feuille 2), apparaisse les villes ayant un ecart inf a 50km avec la ville rentré!!

par exemple si je tape lyon j'aurais dans les cellules en face :

bordeaux 37
auxere 36

j'espere être clair
merci

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,
    exemple sur la ligne 1 de B1 à K1 le nom des villes et sur la colonne A de A2 à A20 également le nom des villes A1 est vide
    ensuite tu peux créer deux listes déroulantes pour sélectionner tes villes, une en M1 pour les villes de la colonne A et un en O1 pour les villes de la ligne A2 à K2

    =INDEX($B$2:$K$20;EQUIV($M$1;$A$2:$A$20);EQUIV($O$1;$B$1:$K$1))

    ou plus court

    =RECHERCHEV(M1;A1:K20;EQUIV(O1;A1:K20))
    1. nan pas possible, je veux que c donnés apparaissent directement dans l'autre feuille sans avoir a rentré dans la feuille de base.

      Et je veux juste avoir a rentrer la ville pour qu' apparaisse les villes les plus proches (<50km) avec le nombre de km d'écart avce la ville en question
  2. bonjour
    sans macro je ne sais pas faire
    avec macro voir si le fichier joint repond un peu a la question

    http://www.cijoint.fr/cjlink.php?file=cj201012/cijVAKxQC1.xls

    bonne suite
    1. je viens de me rendre compte que dans ta macro les résultats données ne sont pas bon il y a un décalage qui se fai entre les villes et les distances!!?
    2. re
      desole

      une petite modif a faire dans le code

      If (d > 0 And d <= dmax) Then
            li = li + 1
            v = .Range("Tville").Cells(c, 1).Value     
            Cells(Premli + li - 1, 1).Value = v
            Cells(Premli + li - 1, 2).Value = d
      End If

      bonne suite
  3. merci beaucoup c exactement se qu'il mefallait !!!!

    encore merci ccm81

    à bientot
    1. Re,

      Je n'ai pas pu répondre plus tôt, ma solution avec une simple formule

      http://www.cijoint.fr/cjlink.php?file=cj201012/cijLd4PADz.xls

      1. bonsoir Mike-31
        excel a encore beaucoup de mysteres pour moi mais avec des solutions comme ça, ça avance, ça avance ...
        cordialement
      2. Salut Ccm,

        Je pense qu'Excel est sans limite ou presque, c'est un outil merveilleux qui réserve à tous les utilisateurs des surprises à découvrir.

        Cordialement

        Mike-31