Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2011, 19h21   #1
Invité de passage
 
Inscription : mai 2002
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 20
Points : 4
Points : 4
Par défaut zone de liste

Bonjour

Après moult recherches infructueuses (peut-être mal faites) je me résous à exposer mon petit problème

Dans une feuille de calcul j'ai entre autre 2 colonnes une pour le code postal et l'autre pour la ville
Je voudrais que lorsque je tape le code postal une liste des villes correspondant à ce code (car il peut y avoir plusieurs villes ayant le même code) apparaisse , qu'ensuite en cliquant dans la liste la ville sélectionnée vienne se placer dans la cellule adéquate et que finalement la liste se referme.

Je suis sous excel 2007

Merci d'avance de vos réponses

André
amarchal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 20h22   #2
Expert Confirmé Sénior
 
Avatar de casefayere
 
Homme Dominique LEMAIRE
Salarié Champagne
Inscription : décembre 2006
Messages : 2 636
Détails du profil
Informations personnelles :
Nom : Homme Dominique LEMAIRE
Âge : 57
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Salarié Champagne
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : décembre 2006
Messages : 2 636
Points : 5 075
Points : 5 075
Bonsoir,
une idée :
dans ta feuille, j'imagine CP en A, ville en B
1 tu mets un USF
2 tu intégres 2 listbox (1 pour cp, une pour ville
3 tu intégres un bouton de commande
4 tu copies le code ci-dessous dans le USF
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub CommandButton1_Click()
Unload Me
End Sub
 
Private Sub cp_Click()
Dim trouve_ville As String, plage As Range, cel As Range, derlg As Long
ville.Clear
With ActiveSheet
   derlg = .Range("A" & .Rows.Count).End(xlUp).Row
   Set plage = .Range("A2", "b" & derlg)
   trouve_ville = cp
   ville.Clear
   For Each cel In plage
      If cel = cp Then
         ville.AddItem cel.Offset(0, 1)
      End If
   Next cel
End With
End Sub
 
Private Sub UserForm_Initialize()
Dim derlg As Long
With ActiveSheet
   derlg = .Range("A" & .Rows.Count).End(xlUp).Row
   cp.RowSource = "feuil1!a2:a" & derlg
End With
End Sub
ça, c'est pour démarrer car, je ne comprends pas encore ce que tu appelles les cellules adéquates
__________________
Dom

De Anomaly
Citation:
N'oubliez pas les points suivants !

Les membres qui vous répondent sont des participants bénévoles !
Quand votre problème est résolu, pensez à cliquer sur le bouton [Résolu] en bas de la discussion !
Pensez à remercier les messages qui vous ont aidé en votant positivement pour eux !
casefayere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 00h28   #3
Invité de passage
 
Inscription : mai 2002
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 20
Points : 4
Points : 4
Bonjour et merci pour la réponse rapide

Cellules adéquates veut dire que quand dans le formulaire que vous créez je clique sur le nom d'une ville ce soit ce nom qui vienne s'insérer ds la feuille excel ds la colonne ville

en outre il a confusion car je tape le code dans une cellule et je voudrais voir apparaitre une liste des villes quand je quitte cette cellule puis placer la ville que j'ai sélectionné dans la cellule suivante

et encore merci je vais faire l'essai

André
amarchal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 00h46   #4
Invité de passage
 
Inscription : mai 2002
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 20
Points : 4
Points : 4
re bonjour

je vais essayé d'être plus clair
sur une feuille excel j'ai des infos sur des joueurs dans la colonne g se place le code postal et ds la colonne h la ville

je tape en colonne G51 le code postal 5000 (a 4 chiffres car je suis en belgique)ce code correspond a 2 villes Namur et Beez je voudrais que lors de la frappe du cp 5000 ds la cellule g51 une liste apparaisse reprenant 2 lignes
NAMUR
BEEZ

Si ds cette liste je clique sur NAMUR celui-ci vient automatiquement en h51
et la liste se referme

Voila j'espère avoir été plus clair

Merci

André
amarchal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 07h11   #5
Membre Expert
 
Homme
Inscription : juillet 2007
Messages : 848
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 848
Points : 1 078
Points : 1 078
Bonjour
L'exemple de ce post ne conviendrais pas?
http://www.developpez.net/forums/d10...les-associees/
cb_60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 08h28   #6
Expert Confirmé Sénior
 
Avatar de casefayere
 
Homme Dominique LEMAIRE
Salarié Champagne
Inscription : décembre 2006
Messages : 2 636
Détails du profil
Informations personnelles :
Nom : Homme Dominique LEMAIRE
Âge : 57
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Salarié Champagne
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : décembre 2006
Messages : 2 636
Points : 5 075
Points : 5 075
Bonjour,
Je pense que de toutes façon, il faudrait avoir une liste de référence originale avec tous les codes postaux et les villes respectives de la Belgique, je ne crois pas qu'excel puisse deviner mais je peux me tromper....

Bonne journée
__________________
Dom

De Anomaly
Citation:
N'oubliez pas les points suivants !

Les membres qui vous répondent sont des participants bénévoles !
Quand votre problème est résolu, pensez à cliquer sur le bouton [Résolu] en bas de la discussion !
Pensez à remercier les messages qui vous ont aidé en votant positivement pour eux !
casefayere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 19h12   #7
Invité de passage
 
Inscription : mai 2002
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 20
Points : 4
Points : 4
Bonjour

j'ai évidemment sur une autre feuille une liste de toutes les villes et de leurs codes postaux cela me semblait aller de soi

merci

André
amarchal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 21h18   #8
Expert Confirmé Sénior
 
Avatar de casefayere
 
Homme Dominique LEMAIRE
Salarié Champagne
Inscription : décembre 2006
Messages : 2 636
Détails du profil
Informations personnelles :
Nom : Homme Dominique LEMAIRE
Âge : 57
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Salarié Champagne
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : décembre 2006
Messages : 2 636
Points : 5 075
Points : 5 075
Bonsoir,
tu as écrit :
Citation:
j'ai évidemment sur une autre feuille une liste de toutes les villes et de leurs codes postaux cela me semblait aller de soi
eh bien , non ! je vois tellement de messages à décoder
donc ma prposition avec l'USF reste bonne, il faut simplement changer les feuilles concernées, je vais remettre le code ci-dessous en t'indiquant les changements à faire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Private Sub CommandButton1_Click()
Unload Me
End Sub
 
Private Sub cp_Click() si ta listbox avec codes postaux s'appelle "cp
Dim trouve_ville As String, plage As Range, cel As Range, derlg As Long
ville.Clear 'ville est le nom de l'autre listbox
With sheets("tafeuille_codes _&_villes") 'ici mettre nom de feuille qui contient tous les codes postaux
   derlg = .Range("A" & .Rows.Count).End(xlUp).Row 'si ces codes sont en col A
   Set plage = .Range("A2", "b" & derlg) 'si tes villes sont en col B
   trouve_ville = cp
   ville.Clear
   For Each cel In plage
      If cel = cp Then
         ville.AddItem cel.Offset(0, 1)
      End If
   Next cel
End With
End Sub
 
Private Sub UserForm_Initialize()
Dim derlg As Long
With ActiveSheet
   derlg = .Range("A" & .Rows.Count).End(xlUp).Row
   cp.RowSource = "feuil1!a2:a" & derlg
End With
End Sub
'si tu as appellé ta listbox pour les villes "ville" 
'ci-dessous, pour un click sur une ville
Private Sub ville_Click
   sheets("ta_feuil_de_destination").range("ta cellule_de_destination) = ville
end sub
si le principe te va, on continuera à progresser

Bonne soirée
__________________
Dom

De Anomaly
Citation:
N'oubliez pas les points suivants !

Les membres qui vous répondent sont des participants bénévoles !
Quand votre problème est résolu, pensez à cliquer sur le bouton [Résolu] en bas de la discussion !
Pensez à remercier les messages qui vous ont aidé en votant positivement pour eux !
casefayere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 00h46   #9
Invité de passage
 
Inscription : mai 2002
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 20
Points : 4
Points : 4
Bonjour

Merci de votre réponse
mon message précédent ne se voulait pas "choquant" sorry

André
amarchal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 13h58   #10
Invité de passage
 
Inscription : mai 2002
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 20
Points : 4
Points : 4
Bonjour

Puisque j'y suis arrivé je vais donner ma solution

En supposant que :
j'ai une zone de liste appelée ville
une feuille sheet1
dans cette feuille
- cola = code
- col b = ville
- col e cellule ou je tape le code postal recherché
- col h col de destination de la ville choisie
voici mon code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Public desti As Range
Sub lville(cp)
'cp = Range("e1")
ville.Clear
With Sheets(1) 'ici mettre nom de feuille qui contient tous les codes postaux
   derlg = .Range("A" & .Rows.Count).End(xlUp).Row 'si ces codes sont en col A
   Set plage = .Range("A2", "b" & derlg) 'si tes villes sont en col B
   trouve_ville = cp
   ville.Clear
   For Each cel In plage
      If cel = cp Then
         ville.AddItem cel.Offset(0, 1)
      End If
   Next cel
End With
ville.Visible = True
End Sub
 
Private Sub ville_Click()
 desti.Offset(0, 1) = ville.Value
ville.Visible = False
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
Set desti = Target
If Not Intersect(Target, Range("E1:E240")) Is Nothing And Target.Value > 999 Then
MsgBox Target.Value
Call lville(Target.Value)
End If
End Sub
Une partie de ce code est du à casefayere

Merci
Fichiers attachés
Type de fichier : zip cp.zip (62,7 Ko, 37 affichages)
amarchal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 16h09   #11
Expert Confirmé Sénior
 
Avatar de casefayere
 
Homme Dominique LEMAIRE
Salarié Champagne
Inscription : décembre 2006
Messages : 2 636
Détails du profil
Informations personnelles :
Nom : Homme Dominique LEMAIRE
Âge : 57
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Salarié Champagne
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : décembre 2006
Messages : 2 636
Points : 5 075
Points : 5 075
Re,

Je me suis permis d'adapter un peu plus ton code avec une liste de validation sans doublons, à une condition, => je crois avoir vu que tu es sur excel 2007 (obligatoire pour mon adaptation).

je provoque un code, quand on clique dans la colonne A, qui crée une liste de validation sans doublon en E. les données sans doublons se retrouve en G, mais tu peux changer en adaptant le code et tu pourras masquer cette colonne, enfin regardes le fichier joint dans un zip car enregistré en xlsm.

Bonne journée, bon Weed-end
__________________
Dom

De Anomaly
Citation:
N'oubliez pas les points suivants !

Les membres qui vous répondent sont des participants bénévoles !
Quand votre problème est résolu, pensez à cliquer sur le bouton [Résolu] en bas de la discussion !
Pensez à remercier les messages qui vous ont aidé en votant positivement pour eux !
casefayere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 23h32   #12
Invité de passage
 
Inscription : mai 2002
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 20
Points : 4
Points : 4
bonjour et merci
je vais adapter

a.
amarchal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h14.


 
 
 
 
Partenaires

Hébergement Web