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 06/05/2011, 21h05   #1
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
Par défaut RECHERCHEV + menu déroulant

Bonjour à tous,

Après beaucoup d'heures de recherche sur le forum, et sans réponse à cette recherche (j'ai du mal à digérer l'expression "google est ton ami") je viens vous demander de l'aide.

Je dois réaliser un petit programme Excel avec une première liste déroulante dans la colonne A avec le nom d'un sport. Puis dans la colonne B, une seconde liste déroulante avec seulement les marques de ce sport.

J'ai tenté d'insérer une rechercheV mais Excel me mets un message d'erreur.

Bien entendu, le fichier test ne comporte que deux marques par sport, mais elle contiendra au moins une dizaine de marques chacunes.

Je vous remercie pour votre aide.
Fichiers attachés
Type de fichier : xls test.xls (31,5 Ko, 21 affichages)
kmariage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 21h52   #2
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
C'est ça que tu veux ?
Fichiers attachés
Type de fichier : xls test_kmariage.xls (47,5 Ko, 63 affichages)
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 22h20   #3
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonsoir
une proposition vba en utilisant les évènements SelectionChange et Change de la feuille Test

Néanmoins, tu devras annuler la fusion des cellules Sport de la feuille Données articles et de remplir toutes les cellules avec doublons sur les sports.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Kol As New Collection
Dim Lst As String
Dim i As Integer
Dim c As Range
 
If Target.Count = 1 And Target.Column = 1 And Target.Row > 3 Then
    Target.Validation.Delete
    With Sheets("Données articles")
        For Each c In .Range("sport")
            On Error Resume Next
            Kol.Add c.Value, c.Value
            On Error GoTo 0
        Next c
    End With
    For i = 2 To Kol.Count
        Lst = Lst & "," & Kol(i)
    Next i
    Lst = Mid(Lst, 2)
    If Lst <> "" Then Target.Validation.Add Type:=xlValidateList, Formula1:=Lst
End If
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lst As String
Dim c As Range
 
If Target.Count = 1 And Target.Column = 1 And Target.Row > 3 Then
    If Target.Value <> "" Then
        Application.ScreenUpdating = False
        Target.Offset(0, 1).Validation.Delete
        With Sheets("Données articles")
            .AutoFilterMode = False
            .Range("sport").AutoFilter field:=1, Criteria1:=Target.Value
            For Each c In .Range("marque").SpecialCells(xlCellTypeVisible)
                If c.Row > 1 Then Lst = Lst & "," & c.Value
            Next c
            .AutoFilterMode = False
        End With
        Lst = Mid(Lst, 2)
        If Lst <> "" Then Target.Offset(0, 1).Validation.Add Type:=xlValidateList, Formula1:=Lst
    Else
        Application.EnableEvents = False
        Target.Offset(0, 1).ClearContents
        Application.EnableEvents = True
    End If
End If
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 23h28   #4
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 411
Points : 14 411
Envoyer un message via Skype™ à Pierre Fauconnier
Salut.

Une solution sans VBA?

La faq Excel est ton amie...
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 12h01   #5
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
Bonjour à tous.

Je tiens à remercier Maxcence qui a trouvé ce que je rechercher du premier coup

C'est exactement celà !

Par contre j'ai encore une petite question. Si je dois faire plusieurs sur plusieurs lignes, est ce que je dois copier le code autant de fois sur VBA ?
Et aussi comment à tu organiser ce que tu as fais sur la droite de la feuille "données articles" dans les cellules jaune ?
kmariage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 16h31   #6
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Non, tu n'as rien à faire qu'à allonger ta base (en évitant de faire ce que tu as fait : la fusion de cellule)
Tu répètes autant de fois que nécessaire le sport dan la colonne de gauche et la marque dans la colonne de droite.

Ce que j'ai mis en jaune, c'est pour te marquer les modifications que j'ai fait.
je m'en sers pour, à travers la macro, être capable d'extraire dynamiquement les sports.


Ah ! si ! une petite modif, parce que j'ai fait ça vite fait !
si tu dois ajouter des sports, il faut allonger la liste des sports.
Et allonger le nom que j'ai donné de manière à prendre en compte les nouveaux sports.
Mais on aurait pu faire cela en automatique aussi.
++
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 17h21   #7
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
Par défaut A

Oui mais tu m'as donné l'exemple pour les cellules A4 et B4.
Si je voudrais refaire cette mise en page en ligne A5 et B5, je dois copier-coller le code dans VBA non ?
kmariage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 17h25   #8
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 411
Points : 14 411
Envoyer un message via Skype™ à Pierre Fauconnier
As-tu essayé la solution de la FAQ? Cela t'éviterait de devoir adapter le code VBA en fonction des cellules concernées?
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 17h35   #9
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
@kmariage
Question, tu veux faire cela pour remplir une colonne en fait... en fonction du choix que tu fais à gauche, cela détermine la liste de droite.
on est bien d'accord ?

Si oui, est-ce "limité" en nombre de lignes ?

En fonction de tes questions, on va te trouver une solution sans duplication de code... une petite modification devrait suffire
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 17h46   #10
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
voici une solution... si cela te convient :
Fichiers attachés
Type de fichier : xls test_kmariage.xls (47,5 Ko, 23 affichages)
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 18h18   #11
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
La mise en page est un peu plus complexe que ça ...

La mise en page serait plus de ce style
Fichiers attachés
Type de fichier : xls test.xls (30,0 Ko, 11 affichages)
kmariage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 18h34   #12
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
rien compris...
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 19h04   #13
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
La mise en page que j'aimerais avoir est celle que j'ai faite sur le fichier Excel joint ci dessous.

C'est un peu plus complexe que ce que tu avais fais au dessus
Fichiers attachés
Type de fichier : xls test.xls (31,0 Ko, 15 affichages)
kmariage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 18h16   #14
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
Ou sinon qqn aurait il une solution sans codage VBA ?
kmariage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 18h04   #15
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Salut !

Ton fichier avec une solution sans VBA. Je me suis permis de changer la disposition des listes de critères mais ça ne change rien. Je t'envoie dans le post suivant un exemple que j'avais envoyé il y a quelques temps qui répondait aux mêmes besoins que toi sur des pays, des villes et des adresses. Il y a sur ce fichier l'explicatif sur la construction, mais n'étant pas une personne très forte pour m'exprimer, n'hésite pas à me faire signe si ce n'est pas clair. En espérant avoir répondu à ton besoin.

Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 18h07   #16
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Re !

Le fichier expliquant comment constuire une (des) cascade(s) de listes déroulantes sans passer par de la programmation VBA.

Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 18h15   #17
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 411
Points : 14 411
Envoyer un message via Skype™ à Pierre Fauconnier
Je t'en ai donné une plus haut dans la discussion, via la faq

http://excel.developpez.com/faq/inde...anceListeValid
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 18h26   #18
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Avec toutes ces aides, tu vas maîtriser le sujet. Pense à mettre "Résolu" pour aiguiller tes petits camarades également dans le besoin ^^

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 18h27   #19
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
Merci Rush

Par contre je ne pourrais le faire avec les marques en colonne au lieu de le faire en ligne ? :s
kmariage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 18h36   #20
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Re !

Bien sûr que tu peux mettre tes marques en colonne, l'important c'est de nommer correctement tes listes ensuite. Check l'exemple envoyé dans mon deuxième fichier Excel, tu remarqueras que les listes sont en ligne et non en colonne. J'avais envie de changer un peu, voilà tout ^^
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h40.


 
 
 
 
Partenaires

Hébergement Web