Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

limiter l'interception des modifs à une plage

5 réponses
Avatar
AB
Bonjour,

Le code suivant colore en rose toute cellule modifiée, et insère ou met à
jour la date dans la cellule d'à côté.
Comment faire pour que ce code ne s'applique qu'aux cellules situées en
colonne B, mais dans toutes les feuilles du classeur ?
AB

5 réponses

Avatar
SL
Re-bonjour AB
Quel code ? Celui de ton fil du 28/09 je présume.

il faut le mettre dans
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
For Each c In Range("B1:B1000")
...

Mais je me répète : ATTENTION. Ce genre de code (changement de couleur) est
à manié avec beaucoup de précaution du fait que le changement de couleur
lui-même ne génère pas d'événement spécifique.

Stéphane

"AB" a écrit dans le message de news:

Bonjour,

Le code suivant colore en rose toute cellule modifiée, et insère ou met à
jour la date dans la cellule d'à côté.
Comment faire pour que ce code ne s'applique qu'aux cellules situées en
colonne B, mais dans toutes les feuilles du classeur ?
AB



Avatar
AB
Salut Stéphane !

Tu as raison , ce doit être le rhume : j'ai oublié de mettre le code.
Depuis la dernière fois, j'ai changé mon fusil d'épaule, et opté pour une
autre solution, dont voici le code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
Target.Offset(0, 1) = Now
Target.Interior.ColorIndex = 7
Application.EnableEvents = True
End Sub

Mais comme je suis nul en VBA, je ne sais pas comment appliquer ça
uniquement aux cellules de la colonne B de toutes les feuilles, d'où ma
question.
A ce propos, est-ce qu'en utilisant "Now", la date sera mise à jour
uniquement à la modification de la cellule concernée ? Je ne voudrais pas
qu'elle soit mise à jour à chaque ouverture du classeur...
Merci encore,
André


"SL" a écrit dans le message de news:

Re-bonjour AB
Quel code ? Celui de ton fil du 28/09 je présume.

il faut le mettre dans
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
For Each c In Range("B1:B1000")
...

Mais je me répète : ATTENTION. Ce genre de code (changement de couleur)
est à manié avec beaucoup de précaution du fait que le changement de
couleur lui-même ne génère pas d'événement spécifique.

Stéphane

"AB" a écrit dans le message de news:

Bonjour,

Le code suivant colore en rose toute cellule modifiée, et insère ou met à
jour la date dans la cellule d'à côté.
Comment faire pour que ce code ne s'applique qu'aux cellules situées en
colonne B, mais dans toutes les feuilles du classeur ?
AB







Avatar
SL
1. Now fixe la date au moment de la modification
2. Fait un test : If Target.Column = 2 Then...

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 2 Then
Target.Offset(0, 1) = Now
Target.Interior.ColorIndex = 7
End If
Application.EnableEvents = True
End Sub

Stéphane

"AB" a écrit dans le message de news:

Salut Stéphane !

Tu as raison , ce doit être le rhume : j'ai oublié de mettre le code.
Depuis la dernière fois, j'ai changé mon fusil d'épaule, et opté pour une
autre solution, dont voici le code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Application.EnableEvents = False
Target.Offset(0, 1) = Now
Target.Interior.ColorIndex = 7
Application.EnableEvents = True
End Sub

Mais comme je suis nul en VBA, je ne sais pas comment appliquer ça
uniquement aux cellules de la colonne B de toutes les feuilles, d'où ma
question.
A ce propos, est-ce qu'en utilisant "Now", la date sera mise à jour
uniquement à la modification de la cellule concernée ? Je ne voudrais pas
qu'elle soit mise à jour à chaque ouverture du classeur...
Merci encore,
André


"SL" a écrit dans le message de news:

Re-bonjour AB
Quel code ? Celui de ton fil du 28/09 je présume.

il faut le mettre dans
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target As Range)
For Each c In Range("B1:B1000")
...

Mais je me répète : ATTENTION. Ce genre de code (changement de couleur)
est à manié avec beaucoup de précaution du fait que le changement de
couleur lui-même ne génère pas d'événement spécifique.

Stéphane

"AB" a écrit dans le message de news:

Bonjour,

Le code suivant colore en rose toute cellule modifiée, et insère ou met
à jour la date dans la cellule d'à côté.
Comment faire pour que ce code ne s'applique qu'aux cellules situées en
colonne B, mais dans toutes les feuilles du classeur ?
AB











Avatar
anonymousA
bonjour,

du coup , le Application.EnableEvents n'a plus vraiment d'interet et
peut être supprimé.

A+

1. Now fixe la date au moment de la modification
2. Fait un test : If Target.Column = 2 Then...

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 2 Then
Target.Offset(0, 1) = Now
Target.Interior.ColorIndex = 7
End If
Application.EnableEvents = True
End Sub

Stéphane

"AB" a écrit dans le message de news:


Salut Stéphane !

Tu as raison , ce doit être le rhume : j'ai oublié de mettre le code.
Depuis la dernière fois, j'ai changé mon fusil d'épaule, et opté pour une
autre solution, dont voici le code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Application.EnableEvents = False
Target.Offset(0, 1) = Now
Target.Interior.ColorIndex = 7
Application.EnableEvents = True
End Sub

Mais comme je suis nul en VBA, je ne sais pas comment appliquer ça
uniquement aux cellules de la colonne B de toutes les feuilles, d'où ma
question.
A ce propos, est-ce qu'en utilisant "Now", la date sera mise à jour
uniquement à la modification de la cellule concernée ? Je ne voudrais pas
qu'elle soit mise à jour à chaque ouverture du classeur...
Merci encore,
André


"SL" a écrit dans le message de news:


Re-bonjour AB
Quel code ? Celui de ton fil du 28/09 je présume.

il faut le mettre dans
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target As Range)
For Each c In Range("B1:B1000")
...

Mais je me répète : ATTENTION. Ce genre de code (changement de couleur)
est à manié avec beaucoup de précaution du fait que le changement de
couleur lui-même ne génère pas d'événement spécifique.

Stéphane

"AB" a écrit dans le message de news:


Bonjour,

Le code suivant colore en rose toute cellule modifiée, et insère ou met
à jour la date dans la cellule d'à côté.
Comment faire pour que ce code ne s'applique qu'aux cellules situées en
colonne B, mais dans toutes les feuilles du classeur ?
AB














Avatar
AB
Merci infiniment Stéphane (et "anonymousA")
Ca marche parfaitement.
A+
André

"anonymousA" a écrit dans le message de news:
4341630b$0$5403$
bonjour,

du coup , le Application.EnableEvents n'a plus vraiment d'interet et peut
être supprimé.

A+

1. Now fixe la date au moment de la modification
2. Fait un test : If Target.Column = 2 Then...

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Application.EnableEvents = False
If Target.Column = 2 Then
Target.Offset(0, 1) = Now
Target.Interior.ColorIndex = 7
End If
Application.EnableEvents = True
End Sub

Stéphane

"AB" a écrit dans le message de news:


Salut Stéphane !

Tu as raison , ce doit être le rhume : j'ai oublié de mettre le code.
Depuis la dernière fois, j'ai changé mon fusil d'épaule, et opté pour une
autre solution, dont voici le code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Application.EnableEvents = False
Target.Offset(0, 1) = Now
Target.Interior.ColorIndex = 7
Application.EnableEvents = True
End Sub

Mais comme je suis nul en VBA, je ne sais pas comment appliquer ça
uniquement aux cellules de la colonne B de toutes les feuilles, d'où ma
question.
A ce propos, est-ce qu'en utilisant "Now", la date sera mise à jour
uniquement à la modification de la cellule concernée ? Je ne voudrais pas
qu'elle soit mise à jour à chaque ouverture du classeur...
Merci encore,
André


"SL" a écrit dans le message de news:


Re-bonjour AB
Quel code ? Celui de ton fil du 28/09 je présume.

il faut le mettre dans
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target As Range)
For Each c In Range("B1:B1000")
...

Mais je me répète : ATTENTION. Ce genre de code (changement de couleur)
est à manié avec beaucoup de précaution du fait que le changement de
couleur lui-même ne génère pas d'événement spécifique.

Stéphane

"AB" a écrit dans le message de news:


Bonjour,

Le code suivant colore en rose toute cellule modifiée, et insère ou met
à jour la date dans la cellule d'à côté.
Comment faire pour que ce code ne s'applique qu'aux cellules situées en
colonne B, mais dans toutes les feuilles du classeur ?
AB