Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 
Re : Combiné deux worsheet range sur la même feuille

Bonjour Gael,
Merci beaucoup pour ta réponse c'est exactement ce que je voulais et merci pour tes explications
C'est super
Bonne soirée et encore merci
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…