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

  1. #1
    Membre régulier

    Homme Profil pro
    retraité
    Inscrit en
    décembre 2014
    Messages
    160
    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 : 160
    Points : 70
    Points
    70
    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
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    7 189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 7 189
    Points : 12 473
    Points
    12 473

    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" ...
    Les raisons réelles de délaissements ne sont pas toujours celles que l'on pense avoir déterminées.

  3. #3
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    13 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

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

    Informations forums :
    Inscription : novembre 2003
    Messages : 13 320
    Points : 35 543
    Points
    35 543
    Billets dans le blog
    40

    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 remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre régulier

    Homme Profil pro
    retraité
    Inscrit en
    décembre 2014
    Messages
    160
    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 : 160
    Points : 70
    Points
    70
    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 régulier

    Homme Profil pro
    retraité
    Inscrit en
    décembre 2014
    Messages
    160
    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 : 160
    Points : 70
    Points
    70
    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
    Inscrit en
    décembre 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : décembre 2008
    Messages : 52
    Points : 41
    Points
    41

    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 régulier

    Homme Profil pro
    retraité
    Inscrit en
    décembre 2014
    Messages
    160
    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 : 160
    Points : 70
    Points
    70
    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, 07h41
  2. liste déroulante triée?
    Par xanthos dans le forum PHP & MySQL
    Réponses: 3
    Dernier message: 29/04/2011, 13h23
  3. Réponses: 2
    Dernier message: 03/12/2009, 18h46
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 17h42
  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, 16h53

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