Synthétiser code VBA tri alphabétique en temps réel

Bonjour à tous, je me permets de vous la question ici car je ne trouve ma solution nul par ailleurs.

En effet, j'ai trouvé un code VBA pour trier plusieurs tableaux de manière automatique dès qu'on rentre une donnée dedans.

Mon premier soucis viens du code en lui même, j'ai beaucoup de tableau et actuellement j'enplile le même code pour chaque tableau...est ce que quelqu'un aurait une solution pour réduire drastiquement mon code avec lequel j'aurais juste à rajouter les coordonnées de mes nouveaux tableaux?

Mon deuxième soucis vient du fait que mon code à l'air de fonctionner, mais il y a des tableaux pour lequel ça ne marche pas. est ce que quelqu'un aurait la gentillesse de jeter un coup d’œil pour me dire ce qui pose problèmes dans ces tableaux sil vous plait?

ci joint le code et le fichier

Private Sub Worksheet_Change(ByVal Target As range)

On Error Resume Next

If Not Intersect(Target, range("C2:C20")) Is Nothing Then

range("C2").Sort Key1:=range("C3"), _

Order1:=xlAscending, Header:=xlYes, _

OrderCustom:=1, MatchCase:=False, _

Orientation:=xlTopToBottom

End If

On Error Resume Next

If Not Intersect(Target, range("C32:C50")) Is Nothing Then

range("C32").Sort Key1:=range("C33"), _

Order1:=xlAscending, Header:=xlYes, _

OrderCustom:=1, MatchCase:=False, _

Orientation:=xlTopToBottom

End If

On Error Resume Next

If Not Intersect(Target, range("C63:C77")) Is Nothing Then

range("C63").Sort Key1:=range("C64"), _

Order1:=xlAscending, Header:=xlYes, _

OrderCustom:=1, MatchCase:=False, _

Orientation:=xlTopToBottom

End If

On Error Resume Next

If Not Intersect(Target, range("C92:C105")) Is Nothing Then

range("C92").Sort Key1:=range("C93"), _

Order1:=xlAscending, Header:=xlYes, _

OrderCustom:=1, MatchCase:=False, _

Orientation:=xlTopToBottom

End If

Bonjour,

pour le début de ton 1er code:

If Not Intersect(Target, range("C2:C20")) Is Nothing Then
range("C2").Sort Key1:=range("C3"), _

il trie de la cellule C2 à C20 selon la cellule C3

si tu veux mettre un commentaire pour t'y retrouver, tu peux dés lors que tu mets une apostrophe en début de ligne

et qu'elle devient verte.

Tu peux aussi enregistrer ta macro toi même (affichage/macro/enregistrer une macro).

Il faut la déclencher dés que tu es prêt à trier et l'arrêter dés que c'est fini (même menu).

a+

fronck

Bonjour

Bonjour à tous

Un essai à tester. Te convient-il ?

Bye !

bonjour, merci pour ces réponses, pour le coup GMB, le nouveau code VBA proposé ne fonctionne plus...

pour la synthétisation il n'y a pas possibilité d'enchainer les coordonnées pour cette ligne de code ?

If Not Intersect(Target, range("C2:C20")) Is Nothing Then

range("C2").Sort Key1:=range("C3"),

Bonjour,

à tester :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim pl As Range
    Set pl = Target.CurrentRegion
    If pl(1).Value = "Date d'entrée" And pl.Columns(3).Column = Target.Column Then
        pl(1, 3).Sort Key1:=pl(2, 3), Order1:=xlAscending, Header:=xlYes
    End If
End Sub

tes tableaux doivent avoir "Date d'entrée" en 1ère cellule et la colonne modifiée doit être la 3ème.

Et enlever la fusion de la dernière ligne 'Liste d'attente'

eric

Bonjour à tous

, le nouveau code VBA proposé ne fonctionne plus...

Quand tu valides une donnée quelconque de la 3°colonne de l’un des tableaux, les données de ce tableau se trient selon un ordre alphabétique de la 3°colonne.

Mais peut-être n’est-ce pas ce que tu souhaites ?

Exemple :

Avant validation de ""boul" en C6 :

capture 0

Après validation de cette même donnée :

capture 2

Bye !

En effet mille excuse GMB il semblerait que tu aies résolu mon problème. Je n'ai plus qu'a l'appliquer à tous mes tableaux

Merci beaucoup

Bonjour,

mais de rien...

eric

Rechercher des sujets similaires à "synthetiser code vba tri alphabetique temps reel"