TRI TABLEAU [Résolu]

Signaler
Messages postés
4
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
18 mars 2020
-
Daher_Ali
Messages postés
4
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
18 mars 2020
-
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

Messages postés
8048
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
26 mars 2020
1 339
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.
Messages postés
4
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
18 mars 2020

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
Patrice33740
Messages postés
8048
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
26 mars 2020
1 339
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 !
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
8048
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
26 mars 2020

mon poste étais de retrouver ces 2 terme dans mon code :
If Target.Column = 4 Then
Range(n & "[[DATE]:[MONTANT]]").Sort
Messages postés
4
Date d'inscription
mardi 17 mars 2020
Statut
Membre
Dernière intervention
18 mars 2020

Oui c'est ce que je recherchais "Cette seconde feuille sera copier au besoin" pour un même travail