IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Discussion :

Liste déroulante triée


Sujet :

Conception

  1. #1
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut Liste déroulante triée
    Bonjour le Forum
    Tout d'abord meilleurs voeux à tous.
    J'ai une feuille de calcul qui en colonne A comporte des Noms et je voudrais que ces Noms servent à une liste déroulante triée pour cette même colonne. Je ne peux pas trier sur place la colonne A donc dans la colonne AA je me sers de la formule =A2 pour trier les noms et j'ai basé la liste déroulante sur la colonne AA.
    Le soucis est que je ne peux pas effectuer de tri, de filtre ou tout autre chose pour trier cette colonne AA par ordre ascendant.
    Est-ce qu'il existe une meilleur façon ?
    Merci
    Cordialement
    PS : je joint une esquisse d'idée
    Fichiers attachés Fichiers attachés

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Le soucis est que je ne peux pas effectuer de tri, de filtre ou tout autre chose pour trier cette colonne AA par ordre ascendant.
    Et qu'est-ce qui t'en empêche donc ?
    Précise-le
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Salut.

    La question qui me vient à l'esprit: Pourquoi donc ne peux-tu pas trier en A?

    Cette "interdiction" m'amène à penser à un défaut de conception. Peux-tu expliquer le contexte? (copie d'écran, ...)

    PS: Le classeur lors de la demande, c'est bof bof...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Re
    Merci pour votre rapidité de réponse.
    Je viens de me rendre compte qu'il est impossible de faire le tri sur une valeur qui n'existe pas encore.
    En effet si je veux renseigner la cellule A2 avec la valeur de la plage A1:A50 que je renseigne moi-même je fais une boucle.
    Pourquoi je ne peux pas trier en A, tout simplement que A fait partie d'un tableau qui ne doit pas être trié.
    Il faut que je créer ma liste déroulante sur une valeur indépendante de ce tableau.
    mille excuses pour le fichier joint. J'avais totalement oublié que c'était à la demande du répondeur.
    merci

  5. #5
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut Liste déroulante triée
    Bonjour,
    Dans le précédent post je me suis expliqué en donnant comme valeur que la liste déroulante devait provenir d'une source indépendante de la colonne où se trouve les cellules avec liste déroulante.
    Après avoir cherché sur les forums j'ai trouvé ces codes qui fonctionnent mais que je n'arrive pas à finaliser à ma demande.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Activate()
    valeur = Range("B6")
    End Sub
     
    Private Sub Worksheet_Calculate()
    If Range("B6") <> valeur Then
    MsgBox "B6 a changé"
    valeur = Range("B6")
    End If
    End Sub
    Je ne veux pas de MsgBox comme le propose le deuxième code.
    Les valeurs à copier sont dans la feuille Factures des cellules E6:E240 et sont à recopier dans la même feuille dans les cellules AK6:AK240.
    J'ai crée un code avec l'assistant me permettant de faire le copier/coller et de voudrais que cette action soit appliquée lorsqu'une cellule de E6:E240 soit modifiée.
    Cette action me permettrait de faire le tri sur la colonne AK6:AK240 et que ces cellules soient la référence de ma liste déroulante.
    Mon souci est que je ne maîtrise pas amplement le VBA pour pouvoir modifier ce code. Les modifications que j'ai apportées me font une boucle sans fin que je suis obligé d'arrêter manuellement.
    Encore une fois merci
    Cordialement

  6. #6
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    Voila ce que j'ai pu vous faire, il ne reste plus qu'a déclenchez la macro avec un bouton ou autre
    je ne suis pas un expert, mais j'ai essayé et ça fonctionne
    Cordialement
    Kidone




    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Private Sub Worksheet_Activate()
    '
    ' Macro1 Macro
    '
    Dim Fin As Long
    '
        Range("E6:E240").Select
    'si 240 = fixe
    '    Fin = 240
    '
    ' ou si la dernière cellule varie enlever la ligne "fin=240" et mettre les 2 lignes ci-dessous en enlevant le '
       Fin = Range("E" & Rows.Count).End(xlUp).Row
       Range("E6:E" & Fin).Select
    '
        Selection.Copy
        Range("AK6").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("AK6"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortTextAsNumbers
        With ActiveWorkbook.Worksheets("Feuil1").Sort
            .SetRange Range("AK6:AK" & Fin)
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    '
        Sheets("Feuil2").Select
        With Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=("=Feuil1!AK6:AK" & Fin)
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
    End Sub

  7. #7
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Bonjour Kidone
    Je te remercie de ton travail qui fonctionne très bien. Si tu n'es pas un expert je suis encore plus nul que toi.
    Je voudrais te demander pourquoi lorsque je quitte la feuil1 et que j'essaie de revenir dessus, je n'y arrive pas. J'ai été obligé de supprimer ce code et de le replacer dans Feuill1 et maintenant tout va bien.
    Et est-ce qu'il est possible de supprimer les doublons dans la liste et de la classer par ordre alphabétique.
    J'ai essayé de comprendre ton code. A quoi sert le Feuil2 et AK6 en feuill1 ?
    Si je comprend bien AK en feuill1 sert au copiage, mais actuellement je ne vois rien.
    et en A1 feuill2 itou
    Merci
    Cordialement

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2013, 06h41
  2. [MySQL] liste déroulante triée?
    Par xanthos dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/04/2011, 12h23
  3. Réponses: 2
    Dernier message: 03/12/2009, 17h46
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo