Créer une liste déroulante en fonction de plusieurs cellules

lofalco

XLDnaute Nouveau
Bonjour à tous,
Je viens vers vous car je butte sur un problème.
Tout d'abord, je ne connais rien en VBA...
J'ai un tableur excel de données géographiques.
Je voudrais qu'en fonction de mes coordonnées géographiques (2 champs : Latitude, Longitude), Excel me propose une liste déroulante de communes dans une 3eme colonne.
J'ai déjà fait un travail sur des mailles 5x5km (j'ai les coordonnées des coins bas gauche et haut droit) auquel j'ai intersecter les parties de communes se trouvant dans les dites-mailles.
J'ai donc un tableur avec en colonnes :
Nom de la commune, Numéro de la maille, Latitude(basgauche), Longitude(basgauche), Latitude(hautdroit), Longitude(hautdroit).
L'entrée étant le numéro de la maille (un seul numéro de maille dans la colonne).
Je voudrais donc créer cette liste déroulante dans le champs "commune" de mon tableur me proposant les différentes communes se situant dans la maille des coordonnées géographiques.
Je connais la fonction INDEX qui permet de renvoyer une valeur provenant d’un autre tableau dans une cellule.
Mais le problème ici est de lui dire que SI la latitude est comprise entre tant et tant ET que la longitude est comprise entre tant et tant, alors il faut créer une liste déroulante avec comme valeurs les différentes valeurs du tableur de référence.
Vous trouverez ci-joint l'exemple.
Merci d'avance pour vos réponses
LoFalco
 

Pièces jointes

  • test_com.xlsx
    17.7 KB · Affichages: 55
  • test_com.xlsx
    17.7 KB · Affichages: 57
  • test_com.xlsx
    17.7 KB · Affichages: 54

CHALET53

XLDnaute Barbatruc
Re : Créer une liste déroulante en fonction de plusieurs cellules

Bonjour,

Je ne sais pas si je peux t'aider
Je ne comprends pas bien ce que tu veux comme résultat
Je suppose que tu veux compléter la feuille Feuil1
Tu saisis quoi en entrée (pour le mettre où)
Tu veux aller chercher quoi dans la feuille 2 à partir de cette première saisie
Une illustration par l'exemple du résultat peut éclairer

a+
 

Monique

Nous a quitté
Repose en paix
Re : Créer une liste déroulante en fonction de plusieurs cellules

Bonsoir,

Sans avoir trop compris :
Une liste de validation sans doublons pour chacune des 4 latitudes et longitudes (feuille 1).

A partir de ces 4 listes de validation, on peut obtenir la liste des communes comprises entre les 2 lat. et les 2 long.

A partir de cette liste de communes, on peut faire une liste de validation

En feuille 2, il y a aussi la liste des communes qui ont le même n° maille (pas trop pratique)
 

Pièces jointes

  • ValidationLofalco.xlsx
    33.6 KB · Affichages: 69

lofalco

XLDnaute Nouveau
Re : Créer une liste déroulante en fonction de plusieurs cellules

Bonjour et merci pour vos réponses,
Ci-joint le tableur avec des explications qui, j'espère, seront plus parlantes.
Monique, c'est exactement ce que je veux faire mais en mettant n'importe quelles coordonnées, je voudrais que le numéro de la maille (dans laquelle les coordonnées sont) s'affiche et que les communes potentielles s'affichent également sous forme de liste.
Merci!
 

Pièces jointes

  • test_com.xlsx
    19 KB · Affichages: 44
  • test_com.xlsx
    19 KB · Affichages: 45
  • test_com.xlsx
    19 KB · Affichages: 43

CHALET53

XLDnaute Barbatruc
Re : Créer une liste déroulante en fonction de plusieurs cellules

Bonjour,

Avant d'aller plus loin, je te propose une autre solution

Pourquoi saisir une longitude? je te propose de la sélectionner parmi les longitudes disponibles

La maille étant complétée, je recherche les communes concernées

La saisie de la latitude est-elle nécessaire (si oui, on peut faire de même)

A suivre
 

Pièces jointes

  • lofalco.xlsm
    26 KB · Affichages: 46

lofalco

XLDnaute Nouveau
Re : Créer une liste déroulante en fonction de plusieurs cellules

Bonjour CHALET53,
Merci pour ta réponse rapide,
En fait j'ai un gps qui me prend directement les coordonnées sur le terrain. Ensuite, je les rentre dans mon tableur excel. C'est pour cela que je dois les "saisir" (en réalité un copier-coller dans le tableur) et non les choisir dans la liste. Je voudrais donc trouver un moyen de dire : si la latitude est comprise entre TANT et TANT (valeurs des champs XWGS84basgauche, XWGS84hautdroit de la Feuil2) ET que la longitude est comprise entre TANT et TANT (valeurs des champs YWGS84basgauche, YWGS84hautdroit de la Feuil2) alors le champ Numéro maille se rempli automatiquement avec le numéro de la maille de la ligne de ces coordonnées (Feuil2) et que le champ Commune propose une liste déroulante avec les communes intersectant cette maille(Feuil2).
Merci!
 

lofalco

XLDnaute Nouveau
Re : Créer une liste déroulante en fonction de plusieurs cellules

Des précisions dans ce message...désolé pour le faux-doublon...

Bonjour CHALET53,
Merci pour ta réponse rapide,
En fait j'ai un gps qui me prend directement les coordonnées sur le terrain. Ensuite, je les rentre dans mon tableur excel. C'est pour cela que je dois les "saisir" (en réalité un copier-coller dans le tableur) et non les choisir dans la liste. Je voudrais donc trouver un moyen de dire : si la latitude est comprise entre TANT et TANT (valeurs des champs XWGS84basgauche, XWGS84hautdroit de la Feuil2) ET que la longitude est comprise entre TANT et TANT (valeurs des champs YWGS84basgauche, YWGS84hautdroit de la Feuil2) alors le champ Numéro maille (Feuil1) se rempli automatiquement avec le numéro de la maille de la ligne de ces coordonnées (Feuil2) et que le champ Commune (Feuil1) propose une liste déroulante avec les communes intersectant cette maille (Feuil2).
Merci!
 

Monique

Nous a quitté
Repose en paix
Re : Créer une liste déroulante en fonction de plusieurs cellules

Bonjour,

Feuille 1, colonnes B, C : tu saisis tes longitudes et latitudes au clavier (ou par un copier-coller spécial valeurs)
Ou bien tu les choisis dans les listes de validation
(tu peux saisir n’importe quoi, l’alerte est enlevée dans la liste de validation)

Selon tes choix, tu as la liste des communes et les n° maille en colonnes F et G.
Tu saisis un n° maille ou tu choisis dans la liste de validation en colonne D

Feuille 2 : format conditionnel selon les choix faits en feuille 1 (avec un aperçu de la feuille 2 en feuille 1)

Feuille « Listes » : elle est bourrée de listes, celles d'hier + les communes par n° de maille)

J’ai du mal à suivre, quand même. Hier, j’ai eu l’impression que tu connaissais tous ces nombres par cœur !
 

Pièces jointes

  • ValidationLofalcoV1.xlsx
    44.6 KB · Affichages: 52

Monique

Nous a quitté
Repose en paix
Re : Créer une liste déroulante en fonction de plusieurs cellules

Bonjour,

La feuille de résultats est un peu modifiée, elle est peut-être plus pratique (du moins pour moi)
Rappel à propos des listes de validation :
- on peut choisir dans la liste
- ou bien saisir au clavier
- ou bien copier-coller (collage spécial valeurs)
 

Pièces jointes

  • ValidationLofalcoV2.xlsx
    35.7 KB · Affichages: 58

lofalco

XLDnaute Nouveau
Re : Créer une liste déroulante en fonction de plusieurs cellules

Bonjour et encore merci,
Je réponds un peu tard mais je n'avais pas de connexion hier.
CHALET53, c'est exactement ce que je veux faire, merci. Est-il possible de faire la meme chose sans bouton poussoir (que les colonnes C et D se mettent à jour directement) ?
Monique, je voudrais juste rentrer 1 coordonnée pour la latitude (ex: 43,7) et 1 coordonnée pour la longitude (ex: 6,4) en B et C, que H3 se mette a jour automatiquement avec le numéro de maille (car il n'y a qu'un seul numéro de maille possible pour une latitude et une longitude précises) et que H6 me propose la liste des communes possibles.
Je voudrais également avoir un format comme mon exemple (Colonnes : Latitude -à saisir-, Longitude -à saisir-, Numéro maille -se remplit automatiquement-, Commune -liste avec les communes possibles-).
L'objectif est d'avoir le numéro de maille correspondant à des coordonnées prises sur le terrain (latitude, longitude) et une proposition de communes intersectant la maille.
lofalco
 

Monique

Nous a quitté
Repose en paix
Re : Créer une liste déroulante en fonction de plusieurs cellules

Re,

Il y a un truc qui cloche
Les coordonnées qui sont dans l'onglet "Données" sont précises.
Si tu tapes 43,7 et 6,4, tu n'as aucune réponse

Dans le dernier message, tu disais "entre tant et tant" et "entre tant et tant"
En colonnes E et F, tu as les correspondances pile de longitude et de latitude.
mais j'ai saisi 2 coordonnées pile en B et C
Tu supprimes le 6ème chiffre après la virgule, ça ne marche plus

En colonnes J et K, c'est à 1 chiffre après la virgule et on a 1 n° de maille en plus et pas une commune de plus
(tu as une cellule (H10) pour modifier l'arrondi)
 

Pièces jointes

  • ValidationLofalcoV3.xlsx
    36.7 KB · Affichages: 65

lofalco

XLDnaute Nouveau
Re : Créer une liste déroulante en fonction de plusieurs cellules

Re,
Oui les coordonnées de l'onglet "données" sont précises car correspondant aux coins d'un carré géoréférencé.
Pour 43,7 et 6,4, c'est normal de ne rien avoir car ces coordonnées ne sont pas comprises entre des valeurs du tableur de référence.
Pour l'arrondi, si je mets 1 chiffre, cela fonctionne mais à partir de 2 chiffres après la virgule çà ne fonctionne plus...
Comme les coordonnées que je souhaite rentrer sont précises, je ne voudrais pas les arrondir pour perdre des informations.
A quoi cela sert-il de les arrondir?
 

Monique

Nous a quitté
Repose en paix
Re : Créer une liste déroulante en fonction de plusieurs cellules

Bonsoir,

Tes messages sont contradictoires et je ne pige plus.

Le dernier :
"je voudrais juste rentrer 1 coordonnée pour la latitude (ex: 43,7)
et 1 coordonnée pour la longitude (ex: 6,4) en B et C,"


L’avant-dernier :
"Je voudrais donc trouver un moyen de dire :
si la latitude est comprise entre TANT et TANT
(valeurs des champs XWGS84basgauche,XWGS84hautdroit de la Feuil2)

ET que la longitude est comprise entre TANT et TANT
(valeurs des champs YWGS84basgauche,YWGS84hautdroit de la Feuil2)

alors le champ Numéro maille se remplit automatiquement"
etc.

Si tu rentres 4 coordonnées, tu travailles sur un carré (ou rectangle)
Si tu en rentres 2, ça devient bancal, à mon avis.

La formule pour 2 lat et 2 long. donnait le n° de ligne par
(LatBasG>=MIN($B$6;$B$3))*(LatHautD<=MAX($B$6;$B$3))*(LongBasG>=MIN($C$6;$C$3))*(LongHautD<=MAX($C$6;$C$3))
et on pouvait rétrécir le "carré" en choisissant un n° de maille s'il y en avait plusieurs.

La formule pour deux lat et deux long. Donnait le n° de ligne par
(LatHautD=$B$3)*(LongHautD=$C$3)

Et c’est à cause de cet « égal » que je mettais la possibilité de l’arrondi
(L’arrondi à 6, c’est 6 chiffres après la virgule et, à 0 chiffre, c’est aucun chiffre après la virgule).

Alors, je ne sais plus quoi penser
 

Discussions similaires

Réponses
8
Affichages
467

Statistiques des forums

Discussions
312 392
Messages
2 087 958
Membres
103 686
dernier inscrit
maykrem