OVH Cloud OVH Cloud

Liste de choix imbriquee

4 réponses
Avatar
Le Surcitaire
Bonjour à tous,

J'essaie de faire une BdD d'adherent a une association avec
en colonne
A -> Nom
B -> Premon
C -> Adresse
D -> Code postal (en validation de donnee liste : de la feuille nomme
choix)
E -> Ville (c'est la qu'est le probleme)

J'aimerais que la ville s'ajoute automatiquement lorsque le code postal
est choisi, ca je sais faire avec la fonction recherche
mais plusieurs ville correspondent au meme code postal et la je ne sais
plus faire
est il possible de creer une liste deroulante quand le cas se produit
et si oui comment? :-[

Merci

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre

4 réponses

Avatar
AV
Regarde là :

http://www.excelabo.net/moteurs/compteclic.php?nom=av-listevalidmultiples

AV
Avatar
Le Surcitaire
Regarde là :

http://www.excelabo.net/moteurs/compteclic.php?nom=av-listevalidmultiples

AV


Merci, j'aurai du cherche un peu plus
Mais par contre quand je n'ai pas plusieur ville qu'elle fonction
utiliser

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre

Avatar
anonymousA
bonjour,je peux te proposer ca aussi

Ici, les conditions de l'hypothèse que j'ai retenu sont les données sont
dans la feuille de la cellule A1 à B6. Les codes postaux sont en colonne
A et les villes en B.
L'inscription des codes postaux se fait en feuille1 sur la colonne A et
les résultats des villes en colonne B.

Je sais pas si ca te servira mais moi ca m'a amusé de faire ca.

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo errhandler

If Not Intersect(Target, Range("A:A")) Is Nothing Then
Set plage = Sheets("Feuil2").Range("A1:B6")


If
Application.WorksheetFunction.CountIf(plage.Resize(plage.Rows.Count, 1),
Target.Value) > 1 Then

With plage
Set c = .Find(What:=Target.Value, Lookat:=xlWhole)

If Not c Is Nothing Then
firstaddress = c.Address
Do
textevalid = textevalid & "," & c.Offset(0, 1).Value

Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With

With Target.Offset(0, 1).Validation
.Delete
.Add Type:=xlValidateList, Formula1:=textevalid
.ShowInput = True
.ShowError = True
End With

Else

Target.Offset(0, 1) =
Application.WorksheetFunction.VLookup(Target.Value, plage, 2,false)

End If

End If

Exit Sub

errhandler:
MsgBox "le code postal n'existe pas"

End Sub

A+


Regarde là :

http://www.excelabo.net/moteurs/compteclic.php?nom=av-listevalidmultiples

AV



Merci, j'aurai du cherche un peu plus
Mais par contre quand je n'ai pas plusieur ville qu'elle fonction utiliser




Avatar
Le Surcitaire
anonymousA a pensé très fort :
bonjour,je peux te proposer ca aussi

Ici, les conditions de l'hypothèse que j'ai retenu sont les données sont dans
la feuille de la cellule A1 à B6. Les codes postaux sont en colonne A et les
villes en B.
L'inscription des codes postaux se fait en feuille1 sur la colonne A et les
résultats des villes en colonne B.

Je sais pas si ca te servira mais moi ca m'a amusé de faire ca.

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo errhandler

If Not Intersect(Target, Range("A:A")) Is Nothing Then
Set plage = Sheets("Feuil2").Range("A1:B6")


If Application.WorksheetFunction.CountIf(plage.Resize(plage.Rows.Count,
1), Target.Value) > 1 Then

With plage
Set c = .Find(What:=Target.Value, Lookat:=xlWhole)

If Not c Is Nothing Then
firstaddress = c.Address
Do
textevalid = textevalid & "," & c.Offset(0, 1).Value

Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With

With Target.Offset(0, 1).Validation
.Delete
.Add Type:=xlValidateList, Formula1:=textevalid
.ShowInput = True
.ShowError = True
End With

Else

Target.Offset(0, 1) =
Application.WorksheetFunction.VLookup(Target.Value, plage, 2,false)

End If

End If

Exit Sub

errhandler:
MsgBox "le code postal n'existe pas"

End Sub

A+


Regarde là :

http://www.excelabo.net/moteurs/compteclic.php?nom=av-listevalidmultiples

AV



Merci, j'aurai du cherche un peu plus
Mais par contre quand je n'ai pas plusieur ville qu'elle fonction utiliser




Merci mais moi je n'arrive pas à fiare fonction votre macro
mes donnée sont en feuille "choix"
ma saisie se fait en feuille "formulaire" en cellule b8
et je n'arrive pas a corriger votre code pour qu'il fonctionne chez moi
:'( il faut dire que je suis debutant en vba

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre