Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Liste déroulante : faire apparaître surface et commune correspondant à sélection

Sebast

XLDnaute Impliqué
Bonjour à toutes et à tous,

j'essaie depuis un certain temps de rendre une liste déroulante dépendante d'une autre mais sans succès …

Pour faire simple :
Dans un tableau de saisie, j'appelle un n° de parcelle pour lequel je vais déclarer le type de production réalisée
Autant j'arrive à créer les listes déroulantes (parcelle 1 à n et production à choisir parmi "blé, maïs, etc.") autant je ne sais pas comment faire pour que la surface correspondant à la parcelle choisie se renseigne dans la colonne C "Surface".
Idem pour que la commune correspondant au n° de parcelle se renseigne dans la colonne E "Commune"...

Dans la feuille "Ma_saisie", l'ordre des colonnes n'a pas d'importance (si toutefois cela pouvait représenter une difficulté supplémentaire)

Par recherchev() je sais comment faire apparaître les infos adéquates dans les cellules correspondantes mais par à les intégrer dans une liste déroulante.

Quelqu'un a-t-il une idée comment réaliser ça ?

Merci d'avance
 

Pièces jointes

  • Question_forum_15022016.xlsx
    15.1 KB · Affichages: 32

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Liste déroulante : faire apparaître surface et commune correspondant à sélection

Bonjour Sebast,

voir fichier joint

à+
Philippe
 

Pièces jointes

  • 111.xlsx
    16 KB · Affichages: 58
  • 111.xlsx
    16 KB · Affichages: 45

Sebast

XLDnaute Impliqué
Re : Liste déroulante : faire apparaître surface et commune correspondant à sélection

Bonsoir Philippe,

merci pour ta solution, qui fonctionne bien.

Cependant, je pensais - si possible - à une liaison dans le menu déroulant, en gros quand je sélectionne Parcelle8 alors automatiquement dans la colonne adéquate se colle la surface et la commune correspondantes, en arrière-plan, sans qu'on voit les formules (un peu comme quand on active le menu déroulant on ne voit pas la cuisine qu'il y a derrière ...)

Mais c'est vrai que ta solution a le mérite de la simplicité. Ma crainte : que la formule soit "écrasée" ou effacée par erreur par mes futurs utilisateurs ...
A défaut, existe-t-il une manière de "masquer" la formule (la rendre invisible dans la colonne concernée) ?

Encore merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Liste déroulante : faire apparaître surface et commune correspondant à sélection

Re,


une autre solution par macro, les colonnes B & D ne contiennent plus de formules et les données qu'elles contiennent ne peuvent plus être effacées ou modifiées

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    25.9 KB · Affichages: 52
  • 111.xlsm
    25.9 KB · Affichages: 57

Sebast

XLDnaute Impliqué
Re : Liste déroulante : faire apparaître surface et commune correspondant à sélection

Bonjour Philippe,

merci beaucoup de t'être penché sur ma demande spécifique.
Ce code fonctionne parfaitement et répond à mes attentes, qui plus est il est pour moi totalement nouveau, ce qui va me permettre d'en apprendre davantage, si j'ai quelques explications.


Puis-je te demander de commenter certaines lignes ?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:B" & Range("B65535").End(xlUp).Row)) Is Nothing Then 
 ' je ne comprends pas intersect ?
  ' je ne comprends pas comment on utilise Target sans l'avoir défini avant ?
For Each cellule In Sheets(3).[MesParcelles]
  ' je ne trouve pas trace d'un objet [MesParcelles] ou feuille [MesParcelles]?
    If cellule = Target Then
        ActiveSheet.Unprotect
        Target.Offset(0, 1) = cellule.Offset(0, 1)
        Target.Offset(0, 3) = cellule.Offset(0, 2)
        ActiveSheet.Protect
        Exit For
    End If
Next cellule
End If
End Sub

Encore merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Liste déroulante : faire apparaître surface et commune correspondant à sélection

Re,

If Not Intersect(Target, Range("B2:B" & Range("B65535").End(xlUp).Row)) Is Nothing Then
La procédure WorkSheet_Change se déclenche automatiquement si il y a un changement de valeur dans une cellule de la colonne B
(de B2 à B & la dernière ligne non-vide de la colonne B) --> Range("B2:B" & Range("B65535").End(xlUp).Row)


' je ne trouve pas trace d'un objet [MesParcelles] ou feuille [MesParcelles]?
il ne s'agit pas d'un Objet ou d'une feuille mais d'une zone nommée MesParcelles
il suffit de presser Ctrl+F3 pour voir les zones nommées
cette zone est dynamique, il est possible d'ajouter ou supprimer des parcelles, la liste de validation en tiendra compte



à+
Philippe
 

Pièces jointes

  • 111.jpg
    69 KB · Affichages: 54
Dernière édition:

Sebast

XLDnaute Impliqué
Re : Liste déroulante : faire apparaître surface et commune correspondant à sélection

Re,

merci pour tes explications, que je dois encore digérer.

- Pour [MesParcelles] je cherchais en vain avec la case qui se trouve au-dessous de la barre, dans laquelle on clique et qui présente les champs nommés : bizarre que ça n'y figure pas (MaProduction y est bien)

- je connaissais les macros événementielles mais j'ai toujours du mal avec Intersect ...

- j'ai regardé du côté de MesParcelles et ne comprends pas :

decaler(Source_parcelles!$A$2;;;;nbval(Sources_parcelles!$A:$A)-1)

Si toutes les feuilles comportaient des Tableaux (au sens excel du terme), y aurait-il encore besoin de Decaler ?
Pourquoi autant de ;;;; à quoi correspondent-ils ?


Y a-t-il une alternative plus simple à Intersect ?

Merci pour ton aide
 

Dranreb

XLDnaute Barbatruc
Re : Liste déroulante : faire apparaître surface et commune correspondant à sélection

Bonsoir
Pour les tableaux vous pouvez utiliser Intersect(Target, Me.ListObjects(1).ListColumns("titre").DatabodyRange)
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Liste déroulante : faire apparaître surface et commune correspondant à sélection

Re,


tout d'abord, il n'y a que 3 point-virgule qui se suivent et pas 4
Pour toutes questions concernant une fonction, la touche F1 est ton amie

 

Sebast

XLDnaute Impliqué
Re : Liste déroulante : faire apparaître surface et commune correspondant à sélection

Bonjour Danreb et Philippe,

désolé pour ma réponse tardive, je n'étais à la fois pas proche d'un ordi et surtout la notification de message ne s'était pas activée ...
Merci pour vos réponses complètes et détaillées.

Danreb : j'ai consulté la syntaxe de la macro événementielle, le Intersect est effectivement proposé d'emblée. Après réflexion, je l'ai digérée et espère l'avoir intégrée.

Philippe : merci pour ce tableau très didactique. De plus, tu as raison, F1 est insuffisamment utilisée ...

Encore merci à vous
 

Discussions similaires

Réponses
8
Affichages
445
Réponses
36
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…