XL 2016 listing avec tri selon classification

  • Initiateur de la discussion Initiateur de la discussion moma
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

moma

XLDnaute Nouveau
Bonjour,

Grace a votre aide j'ai crée un tableur pour un listing au boulot
ou chaque bouton en haut interagit avec la liste en dessus

Comme vous pouvez le constater chaque bouton "fds a caisse" "paye" fds + ndf" "ndf" "ar" ... fonctionne
il surligne une ligne en la classifiant d'un numéro pour un futur tri.

Aujourd'hui je veux rajouter le bouton FDS+TM est je n'arrive pas a le faire fonctionner.
il surligne bien mais je veux pas rajouter le numéro 3 pour son trie.

merci pour votre aide
 

Pièces jointes

bonsoir Moma,
quelques erreurs dans votre code VBA qui en l'état ne peut pas fonctionner, quelque soit le bouton
appel à ecrirel en passant un paramètre alors que la macro n'en a pas 😡

Le code corrigé (ajout en paramètre du n° de la ligne), qui fonctionne également pour le nouveau bouton.
VB:
Sub ecrire()
    For Each Ligne In Selection.Rows 'pour chaque ligne sŽlectionnŽes
        Call ecrirel(Ligne.Row)
    Next
End Sub
Sub ecrirel(maligne As Double)
    tabletrie = Array("FDS A CAISSE", "PAYE", "FDS + NDF", "NDF", "AR", "SCINTI", "", "FDS + TM")    'ces deux tables, vont indiquŽes l'ordre de trie
    indextablerie = Array(3, 3, 1, 1, 2, 3, 0, 3)                                  'l'index de tablerie, donnera la valeur de trie dans indextablerie
    bouton = Application.Caller
     Set bouton = ActiveSheet.Shapes(bouton)
    
    For n = 0 To UBound(tabletrie)
        If bouton.TextFrame2.TextRange.Text = tabletrie(n) Then etat = indextablerie(n) 'Žcriture de l'ordre de trie
    Next
    
    coul = bouton.Fill.ForeColor                'prŽlve la couleur du bouton
    With ActiveSheet
        .Cells(maligne, colet) = etat           ' Inscrit l'Žtat
        .Range(.Cells(maligne, 2), .Cells(maligne, dcol)).Interior.Color = coul ' Surligne
    End With
End Sub
 
Bonjour Moma,
l'erreur vient du texte du bouton FDS + TM qui comporte 1 ou 2 espaces après TM -> espaces à supprimer pour passer dans le code
VB:
        If bouton.TextFrame2.TextRange.Text = tabletrie(n) Then
            etat = indextablerie(n) 'Žcriture de l'ordre de trie
        End If
 
Bonsoir le fil

juste en Passantj'ai rajouté ceux-ci: ExitFor
VB:
For n = 0 To UBound(tabletrie)
        If bouton.TextFrame2.TextRange.Text = tabletrie(n) Then
            etat = indextablerie(n)  'Žcriture de l'ordre de trie
    Exit For 'Ici On quitte si trouvé'
Next
Bonne fin de Soirée
Jean marie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour