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
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
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
Merci, j'aurai du cherche un peu plus Mais par contre quand je n'ai pas plusieur ville qu'elle fonction utiliser
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
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
Merci, j'aurai du cherche un peu plus Mais par contre quand je n'ai pas plusieur ville qu'elle fonction utiliser
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
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
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
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
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
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