XL 2019 Tri automatique

Yazeubi

XLDnaute Junior
Bonjour le forum,

Je possèdes une liste déroulante qui me permet de changer les valeurs d'une plage, je souhaite que cette plage soit triés du plus grand au plus petit. Dès que je change de valeurs à l'aide de la liste déroulante, lorsqu'elle apparaissent dans la plage de données elle doivent automatiquement se triés. Il y a parfois des 0 dans les valeurs ils doivent aussi être triés.

Je possèdes une deuxièmes missions qui consiste à désactiver les "0" du champs de cellules indiqué dans l'Excel. Je souhaite que lorsque je change de valeur à l'aide d'une liste déroulante (qui n'est pas crée vous m'en excuserez) le 0 soit désactivé et peu importe dans quel cellules il se situe ( toujours dans le champs de cellules évidement).

Je vous met ci-joint un document Excel, contenant un commentaire et un exemple pour bien expliquer mes demandes. Dans la feuille "Mission n°1" se situe la mission sur le tris des cellules et dans la feuille "Mission 2" se trouve la mission pour désactiver les 0.


Merci de votre précieuse aide.
 

Pièces jointes

  • Liste déroulante formule exemple forum.xlsm
    34.1 KB · Affichages: 8
Dernière édition:

Yazeubi

XLDnaute Junior
Pour la mission 2, qu'est-ce qui empêche de vider la cellule de données quand elle est = 0 ?
La colonne C5:C60 est normalement sous forme de liste déroulante, (je n'ai pas eu le temps de la faire), donc si je change les valeurs de la colonnes, les 0 seront situé à d'autre endroit.
Cette colonne est relié à un graphe qui va changé de forme selon les valeurs de la liste déroulante, les "0" signifie qu'il n'y a pas de valeurs et ils me gâche mon graphe, je souhaite donc les désactivés.
 

Yazeubi

XLDnaute Junior
Si si, il est fonctionnel, les résultats sont en ligne 30 ( j'avais oublié de la préciser )
Pour la mission n°1 c'est super, mais il y un petit problèmes et j'aurais besoin d'indication rapide.
Pour le petit problèmes c'est que les "0" sont bien situé en bout de ligne et n'apparaissent plus mais le reste des valeurs ne sont pas mis du plus grands au plus petit.
Et pour l'indication j'aimerai faire ce que vous avez fais sur un autre dossier, pouvez-vous m'expliquer rapidement votre macro j'ai du mal à comprendre ?
J'aimerai vous dire quel point particulier je ne comprend pas mais je dirais un peu tout.
Merci !

VB:
Sub triDecroissant(tableau)
    nb = UBound(tableau)
    tabTemp = tableau
    ReDim tableau(1 To nb)
    For i = 1 To nb
        pos = 1
        For L = 1 To nb
            If Val(LCase(tabTemp(i))) > Val(LCase(tabTemp(L))) And i <> L Then
                pos = pos + 1
            End If
        Next
        For ii = 1 To 1
            Select Case True
            Case pos = nb
            Case tableau(nb - pos) = "": tableau(nb - pos) = tabTemp(i)
            Case Else
                pos = pos + 1
                ii = ii - 1
            End Select
        Next
    Next
End Sub
 

Yazeubi

XLDnaute Junior
1654337599742.png

Bonjour @fanch55,

Sur la mission n°1 on peut observer ci-dessus que ce n'est pas dans l'ordre croissant, même si les 0 sont bien désactivé ce qui est bien.
1654337733300.png

Pour la mission n°2 les valeurs de la liste déroulante ont des valeurs aléatoires donc les "0" peuvent se trouver à n'importe qu'elle endroit de la plage de données, j'ai essayé de mette un "0" à en autre endroit dans la plage de données et ils ne sont pas désactivé de partout or c'est ce que je souhaiterais.

Merci de votre aide.
 
Dernière édition:

fanch55

XLDnaute Barbatruc
Désolé, je viens de m'apercevoir que le classeur que je vous ai joint n'avait rien à voir avec mon développement ?????
Voici le classeur correct
je supprime le post précédent
 

Pièces jointes

  • Liste déroulante formule exemple forum Fanch55 (3).xlsm
    44.8 KB · Affichages: 8

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 024
Membres
101 873
dernier inscrit
excellllll