TRI TABLEAU

Résolu/Fermé
Daher_Ali Messages postés 4 Date d'inscription mardi 17 mars 2020 Statut Membre Dernière intervention 18 mars 2020 - Modifié le 17 mars 2020 à 14:38
Daher_Ali Messages postés 4 Date d'inscription mardi 17 mars 2020 Statut Membre Dernière intervention 18 mars 2020 - 18 mars 2020 à 12:20
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

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
18 mars 2020 à 10:57
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
Daher_Ali Messages postés 4 Date d'inscription mardi 17 mars 2020 Statut Membre Dernière intervention 18 mars 2020
18 mars 2020 à 11:49
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
18 mars 2020 à 12:06
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
Daher_Ali Messages postés 4 Date d'inscription mardi 17 mars 2020 Statut Membre Dernière intervention 18 mars 2020 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
18 mars 2020 à 12:20
mon poste étais de retrouver ces 2 terme dans mon code :
If Target.Column = 4 Then
Range(n & "[[DATE]:[MONTANT]]").Sort
0
Daher_Ali Messages postés 4 Date d'inscription mardi 17 mars 2020 Statut Membre Dernière intervention 18 mars 2020
18 mars 2020 à 12:18
Oui c'est ce que je recherchais "Cette seconde feuille sera copier au besoin" pour un même travail
0