TRI TABLEAU

Résolu
Daher_Ali Messages postés 4 Statut Membre -  
Daher_Ali Messages postés 4 Statut Membre -
Bonjour,
j'ai un soucis et j'aimerais que quelqu'un m'aide…
j'ai fait un code qui tri mon tableau qui comporte 6 colonnes, le code marche très bien dès que je saisi la 1er colonne le tri ce fait automatiquement,
Mais j'aimerais : tant que la cellule de la 4éme colonne n'est pas saisi le tri ne fonctionne pas et lorsque je saisi la 1er jusqu'à la 4éme colonne le tri ce fait automatiquement en 1er colonne.
J'ai préférer choisir cette formule pour que lorsque je crées une nouvelles feuille que je puisse utiliser le même code.
Merci
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If ActiveCell.ListObject Is Nothing Then Exit Sub
For s = 2 To Sheets.Count
For Each n In Sheets(s).ListObjects
Range(n).Sort key1:=Range(n & "[DATE]"), Header:=xlYes, Order1:=xlAscending
Next n
Next s
'NomTableau = "Client"
End Sub

3 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    Tes explications ne correspondent pas au fonctionnement du code que tu présente !!!
    « j'ai fait un code qui tri mon tableau qui comporte 6 colonnes, le code marche très bien dès que je saisi la 1er colonne le tri ce fait automatiquement, »
    - mon c'est pour 1 tableau, pour plusieurs c'est mes : ton code trie tous les tableaux de toutes les feuilles sauf la première
    - c'est pas la 1ère mais n'importe quelle cellule du tableau.
    0
  2. Daher_Ali Messages postés 4 Statut Membre
     
    Bonjour,
    le classeur comporte 2 feuilles, la premier juste une base et la seconde le tableau en question qui dois être trier. Cette seconde feuille sera copier au besoin pour cela dans le code j'ai mis : For s = 2 To Sheets.Count
    bref, merci comme même pour votre retour mais j'ai trouver ce que je cherchais
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If ActiveCell.ListObject Is Nothing Then Exit Sub
    For s = 2 To Sheets.Count
    For Each n In Sheets(s).ListObjects
    If Target.Column = 4 Then
    Range(n & "[[DATE]:[MONTANT]]").Sort key1:=Range(n & "[DATE]"), Order1:=xlAscending, Header:=xlYes
    End If
    Next n
    Next s
    End Sub
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      Si tu ne veux trier que le tableau de la feuille, le
      For s = 2 To Sheets.Count 
      . est inutile !

      Il est est de même pour le
      For Each n In Sheets(s).ListObjects
      . il suffit de travailler sur le tableau

      Lorsque tu dupliqueras la feuille la macro sera dupliquée. La copie agira sur le tableau de la nouvelle feuille !
      0
      1. Daher_Ali Messages postés 4 Statut Membre > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        mon poste étais de retrouver ces 2 terme dans mon code :
        If Target.Column = 4 Then
        Range(n & "[[DATE]:[MONTANT]]").Sort
        0
  3. Daher_Ali Messages postés 4 Statut Membre
     
    Oui c'est ce que je recherchais "Cette seconde feuille sera copier au besoin" pour un même travail
    0