Combiné deux worsheet range sur la même feuille

  • Initiateur de la discussion Initiateur de la discussion libellule85
  • 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 !

libellule85

XLDnaute Accro
Bonjour tout le monde,
Je m'adresse à nouveau à vous pour résoudre mon petit problème.
Voilà, j'ai une feuille sur laquelle il y a une macro pour classer par dates et n° de Documents dans les colonnes A & B code ci dessous

Code de la Feuille
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Call tri
End Sub

Code du module
Code:
Sub tri()
    Range("A5:L417").Sort Key1:=Range("A5"), Order1:=xlAscending, Key2:=Range( _
        "B5"), Order2:=xlAscending, _
        Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
        xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
    End Sub

Et cela fonctionne très bien, mais je voudrais ajouter sur la même feuille le code ci-dessous (trouvé sur le forum) qui inscrit la date et l'heure (dans la colonne N et O) du document saisi et que celles-ci suivent le classement de la ligne :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A5:A65535")) Is Nothing Then
Cells(Target.Row, 14).Value = Format(Date, "d mmm yyyy")
Cells(Target.Row, 15).Value = Format(Time, "hh:mm:ss")
End If
End Sub

Ci-joint fichier.

D'avance merci pour votre aide
 

Pièces jointes

Re : Combiné deux worsheet range sur la même feuille

Bonjour Libellule85, le Forum,

Essaye le code suivant:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A5:B417")) Is Nothing Then
    Application.EnableEvents = False
    Cells(Target.Row, 14).Value = Format(Date, "d mmm yyyy")
    Cells(Target.Row, 15).Value = Format(Time, "hh:mm:ss")
    Call tri
    Application.EnableEvents = True
End If
End Sub

Dans ce cas, la date et l'heure ainsi que le tri vont s'exécuter si on change une valeur en colonne A ou B.

Si tu veux que la date et l'heure se mettent à jour quelle que soit la colonne modifiée, mais sans le tri si on ne change rien en colonne A ou B utilise le code suivant:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Cells(Target.Row, 14).Value = Format(Date, "d mmm yyyy")
Cells(Target.Row, 15).Value = Format(Time, "hh:mm:ss")
If Not Intersect(Target, Range("A5:B417")) Is Nothing Then
    Call tri
End If
Application.EnableEvents = True
End Sub

Enableevents=false est là pour éviter que le code ne boucle sur lui-même et on le rétablit en fin de procédure.

@+

Gael
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
592
Réponses
4
Affichages
242
Réponses
4
Affichages
433
Retour