Bonjour à toutes et tous
Je travaille sous excel 2003 sur un tableau partagé de gestion
d'abscence.
Initialement, j'avais ecris ce code pour avoir une trace de changement
de valeur sur une ligne qui donnait ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Je voudrais afinner ce code en le divisant en deux parties distinctes,
à savoir de [A:L] une zone dédiée à l'abscence
et une zone dédiée au remplacement [M:P]
J'ai donc écris ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en AA le user name et en AB le moment
If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
Application.EnableEvents = True
End If
End Sub
La première procédure fonctionne, mais pas la seconde !!!
Que faire ?
Qui pourrait m'apporter ses lumières ?
merci d'avance et joyeuses fêtes à toutes et tous
Jean-Yves
Bonjour à toutes et tous
Je travaille sous excel 2003 sur un tableau partagé de gestion
d'abscence.
Initialement, j'avais ecris ce code pour avoir une trace de changement
de valeur sur une ligne qui donnait ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Je voudrais afinner ce code en le divisant en deux parties distinctes,
à savoir de [A:L] une zone dédiée à l'abscence
et une zone dédiée au remplacement [M:P]
J'ai donc écris ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en AA le user name et en AB le moment
If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
Application.EnableEvents = True
End If
End Sub
La première procédure fonctionne, mais pas la seconde !!!
Que faire ?
Qui pourrait m'apporter ses lumières ?
merci d'avance et joyeuses fêtes à toutes et tous
Jean-Yves
Bonjour à toutes et tous
Je travaille sous excel 2003 sur un tableau partagé de gestion
d'abscence.
Initialement, j'avais ecris ce code pour avoir une trace de changement
de valeur sur une ligne qui donnait ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Je voudrais afinner ce code en le divisant en deux parties distinctes,
à savoir de [A:L] une zone dédiée à l'abscence
et une zone dédiée au remplacement [M:P]
J'ai donc écris ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en AA le user name et en AB le moment
If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
Application.EnableEvents = True
End If
End Sub
La première procédure fonctionne, mais pas la seconde !!!
Que faire ?
Qui pourrait m'apporter ses lumières ?
merci d'avance et joyeuses fêtes à toutes et tous
Jean-Yves
Bonjour Jean-Yves,
Est-ce que ce code te convient ?
Il y a évidemment moyen de faire plus court
Philippe Tulliez
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
' de A à L
Select Case Target.Column
Case 1 To 12
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Case 13 To 16
' de M à P
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
End Select
Application.EnableEvents = True
End If
End Sub
JeanYvesGascon a écrit :Bonjour à toutes et tous
Je travaille sous excel 2003 sur un tableau partagé de gestion
d'abscence.
Initialement, j'avais ecris ce code pour avoir une trace de changement
de valeur sur une ligne qui donnait ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Je voudrais afinner ce code en le divisant en deux parties distinctes,
à savoir de [A:L] une zone dédiée à l'abscence
et une zone dédiée au remplacement [M:P]
J'ai donc écris ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en AA le user name et en AB le moment
If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
Application.EnableEvents = True
End If
End Sub
La première procédure fonctionne, mais pas la seconde !!!
Que faire ?
Qui pourrait m'apporter ses lumières ?
merci d'avance et joyeuses fêtes à toutes et tous
Jean-Yves
Bonjour Jean-Yves,
Est-ce que ce code te convient ?
Il y a évidemment moyen de faire plus court
Philippe Tulliez
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
' de A à L
Select Case Target.Column
Case 1 To 12
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Case 13 To 16
' de M à P
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
End Select
Application.EnableEvents = True
End If
End Sub
JeanYvesGascon a écrit :
Bonjour à toutes et tous
Je travaille sous excel 2003 sur un tableau partagé de gestion
d'abscence.
Initialement, j'avais ecris ce code pour avoir une trace de changement
de valeur sur une ligne qui donnait ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Je voudrais afinner ce code en le divisant en deux parties distinctes,
à savoir de [A:L] une zone dédiée à l'abscence
et une zone dédiée au remplacement [M:P]
J'ai donc écris ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en AA le user name et en AB le moment
If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
Application.EnableEvents = True
End If
End Sub
La première procédure fonctionne, mais pas la seconde !!!
Que faire ?
Qui pourrait m'apporter ses lumières ?
merci d'avance et joyeuses fêtes à toutes et tous
Jean-Yves
Bonjour Jean-Yves,
Est-ce que ce code te convient ?
Il y a évidemment moyen de faire plus court
Philippe Tulliez
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
' de A à L
Select Case Target.Column
Case 1 To 12
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Case 13 To 16
' de M à P
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
End Select
Application.EnableEvents = True
End If
End Sub
JeanYvesGascon a écrit :Bonjour à toutes et tous
Je travaille sous excel 2003 sur un tableau partagé de gestion
d'abscence.
Initialement, j'avais ecris ce code pour avoir une trace de changement
de valeur sur une ligne qui donnait ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Je voudrais afinner ce code en le divisant en deux parties distinctes,
à savoir de [A:L] une zone dédiée à l'abscence
et une zone dédiée au remplacement [M:P]
J'ai donc écris ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en AA le user name et en AB le moment
If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
Application.EnableEvents = True
End If
End Sub
La première procédure fonctionne, mais pas la seconde !!!
Que faire ?
Qui pourrait m'apporter ses lumières ?
merci d'avance et joyeuses fêtes à toutes et tous
Jean-Yves
Bonjour Jean-Yves,
Est-ce que ce code te convient ?
Il y a évidemment moyen de faire plus court
Philippe Tulliez
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
' de A à L
Select Case Target.Column
Case 1 To 12
Cells(Target.Row, 24) = Environ("username") ' ou Get UserName()
Cells(Target.Row, 25) = Now
Case 13 To 16
' de M à P
Cells(Target.Row, 27) = Environ("username") ' ou Get UserName()
Cells(Target.Row, 28) = Now
End Select
Application.EnableEvents = True
End If
End Sub
JeanYvesGascon a écrit :
> Bonjour à toutes et tous
> Je travaille sous excel 2003 sur un tableau partagé de gestion
> d'abscence.
> Initialement, j'avais ecris ce code pour avoir une trace de changement
> de valeur sur une ligne qui donnait ceci :
> Private Sub Worksheet_Change(ByVal Target As Range)
> ' indiquer en X le user name et en Y le moment
> If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
> Then
> Application.EnableEvents = False
> Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
> Cells(Target.Row, 25) = Now
> Application.EnableEvents = True
> End If
> End Sub
> Je voudrais afinner ce code en le divisant en deux parties distinctes,
> à savoir de [A:L] une zone dédiée à l'abscence
> et une zone dédiée au remplacement [M:P]
> J'ai donc écris ceci :
> Private Sub Worksheet_Change(ByVal Target As Range)
> ' indiquer en X le user name et en Y le moment
> If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
> Then
> Application.EnableEvents = False
> Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
> Cells(Target.Row, 25) = Now
> Application.EnableEvents = True
> End If
> End Sub
> Private Sub Worksheet_Change(ByVal Target As Range)
> ' indiquer en AA le user name et en AB le moment
> If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
> Then
> Application.EnableEvents = False
> Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
> Cells(Target.Row, 28) = Now
> Application.EnableEvents = True
> End If
> End Sub
> La première procédure fonctionne, mais pas la seconde !!!
> Que faire ?
> Qui pourrait m'apporter ses lumières ?
> merci d'avance et joyeuses fêtes à toutes et tous
> Jean-Yves- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour Jean-Yves,
Est-ce que ce code te convient ?
Il y a évidemment moyen de faire plus court
Philippe Tulliez
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
' de A à L
Select Case Target.Column
Case 1 To 12
Cells(Target.Row, 24) = Environ("username") ' ou Get UserName()
Cells(Target.Row, 25) = Now
Case 13 To 16
' de M à P
Cells(Target.Row, 27) = Environ("username") ' ou Get UserName()
Cells(Target.Row, 28) = Now
End Select
Application.EnableEvents = True
End If
End Sub
JeanYvesGascon a écrit :
> Bonjour à toutes et tous
> Je travaille sous excel 2003 sur un tableau partagé de gestion
> d'abscence.
> Initialement, j'avais ecris ce code pour avoir une trace de changement
> de valeur sur une ligne qui donnait ceci :
> Private Sub Worksheet_Change(ByVal Target As Range)
> ' indiquer en X le user name et en Y le moment
> If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
> Then
> Application.EnableEvents = False
> Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
> Cells(Target.Row, 25) = Now
> Application.EnableEvents = True
> End If
> End Sub
> Je voudrais afinner ce code en le divisant en deux parties distinctes,
> à savoir de [A:L] une zone dédiée à l'abscence
> et une zone dédiée au remplacement [M:P]
> J'ai donc écris ceci :
> Private Sub Worksheet_Change(ByVal Target As Range)
> ' indiquer en X le user name et en Y le moment
> If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
> Then
> Application.EnableEvents = False
> Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
> Cells(Target.Row, 25) = Now
> Application.EnableEvents = True
> End If
> End Sub
> Private Sub Worksheet_Change(ByVal Target As Range)
> ' indiquer en AA le user name et en AB le moment
> If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
> Then
> Application.EnableEvents = False
> Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
> Cells(Target.Row, 28) = Now
> Application.EnableEvents = True
> End If
> End Sub
> La première procédure fonctionne, mais pas la seconde !!!
> Que faire ?
> Qui pourrait m'apporter ses lumières ?
> merci d'avance et joyeuses fêtes à toutes et tous
> Jean-Yves- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour Jean-Yves,
Est-ce que ce code te convient ?
Il y a évidemment moyen de faire plus court
Philippe Tulliez
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
' de A à L
Select Case Target.Column
Case 1 To 12
Cells(Target.Row, 24) = Environ("username") ' ou Get UserName()
Cells(Target.Row, 25) = Now
Case 13 To 16
' de M à P
Cells(Target.Row, 27) = Environ("username") ' ou Get UserName()
Cells(Target.Row, 28) = Now
End Select
Application.EnableEvents = True
End If
End Sub
JeanYvesGascon a écrit :
> Bonjour à toutes et tous
> Je travaille sous excel 2003 sur un tableau partagé de gestion
> d'abscence.
> Initialement, j'avais ecris ce code pour avoir une trace de changement
> de valeur sur une ligne qui donnait ceci :
> Private Sub Worksheet_Change(ByVal Target As Range)
> ' indiquer en X le user name et en Y le moment
> If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
> Then
> Application.EnableEvents = False
> Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
> Cells(Target.Row, 25) = Now
> Application.EnableEvents = True
> End If
> End Sub
> Je voudrais afinner ce code en le divisant en deux parties distinctes,
> à savoir de [A:L] une zone dédiée à l'abscence
> et une zone dédiée au remplacement [M:P]
> J'ai donc écris ceci :
> Private Sub Worksheet_Change(ByVal Target As Range)
> ' indiquer en X le user name et en Y le moment
> If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
> Then
> Application.EnableEvents = False
> Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
> Cells(Target.Row, 25) = Now
> Application.EnableEvents = True
> End If
> End Sub
> Private Sub Worksheet_Change(ByVal Target As Range)
> ' indiquer en AA le user name et en AB le moment
> If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
> Then
> Application.EnableEvents = False
> Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
> Cells(Target.Row, 28) = Now
> Application.EnableEvents = True
> End If
> End Sub
> La première procédure fonctionne, mais pas la seconde !!!
> Que faire ?
> Qui pourrait m'apporter ses lumières ?
> merci d'avance et joyeuses fêtes à toutes et tous
> Jean-Yves- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
On 23 déc, 11:22, Corona wrote:Bonjour Jean-Yves,
Est-ce que ce code te convient ?
Il y a évidemment moyen de faire plus court
Philippe Tulliez
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
' de A à L
Select Case Target.Column
Case 1 To 12
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Case 13 To 16
' de M à P
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
End Select
Application.EnableEvents = True
End If
End Sub
JeanYvesGascon a écrit :Bonjour à toutes et tous
Je travaille sous excel 2003 sur un tableau partagé de gestion
d'abscence.
Initialement, j'avais ecris ce code pour avoir une trace de changement
de valeur sur une ligne qui donnait ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Je voudrais afinner ce code en le divisant en deux parties distinctes,
à savoir de [A:L] une zone dédiée à l'abscence
et une zone dédiée au remplacement [M:P]
J'ai donc écris ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en AA le user name et en AB le moment
If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
Application.EnableEvents = True
End If
End Sub
La première procédure fonctionne, mais pas la seconde !!!
Que faire ?
Qui pourrait m'apporter ses lumières ?
merci d'avance et joyeuses fêtes à toutes et tous
Jean-Yves- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Merci Philippe
Cela fonctionne admirablement bien.
Bien sur, si tu connais un moyen plus court ou plus rapide, je suis
preneur.
Joyeuses Fêtes
Jean-Yves
On 23 déc, 11:22, Corona <PhilippeTull...@Brux.be> wrote:
Bonjour Jean-Yves,
Est-ce que ce code te convient ?
Il y a évidemment moyen de faire plus court
Philippe Tulliez
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
' de A à L
Select Case Target.Column
Case 1 To 12
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Case 13 To 16
' de M à P
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
End Select
Application.EnableEvents = True
End If
End Sub
JeanYvesGascon a écrit :
Bonjour à toutes et tous
Je travaille sous excel 2003 sur un tableau partagé de gestion
d'abscence.
Initialement, j'avais ecris ce code pour avoir une trace de changement
de valeur sur une ligne qui donnait ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Je voudrais afinner ce code en le divisant en deux parties distinctes,
à savoir de [A:L] une zone dédiée à l'abscence
et une zone dédiée au remplacement [M:P]
J'ai donc écris ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en AA le user name et en AB le moment
If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
Application.EnableEvents = True
End If
End Sub
La première procédure fonctionne, mais pas la seconde !!!
Que faire ?
Qui pourrait m'apporter ses lumières ?
merci d'avance et joyeuses fêtes à toutes et tous
Jean-Yves- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Merci Philippe
Cela fonctionne admirablement bien.
Bien sur, si tu connais un moyen plus court ou plus rapide, je suis
preneur.
Joyeuses Fêtes
Jean-Yves
On 23 déc, 11:22, Corona wrote:Bonjour Jean-Yves,
Est-ce que ce code te convient ?
Il y a évidemment moyen de faire plus court
Philippe Tulliez
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
' de A à L
Select Case Target.Column
Case 1 To 12
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Case 13 To 16
' de M à P
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
End Select
Application.EnableEvents = True
End If
End Sub
JeanYvesGascon a écrit :Bonjour à toutes et tous
Je travaille sous excel 2003 sur un tableau partagé de gestion
d'abscence.
Initialement, j'avais ecris ce code pour avoir une trace de changement
de valeur sur une ligne qui donnait ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:P65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Je voudrais afinner ce code en le divisant en deux parties distinctes,
à savoir de [A:L] une zone dédiée à l'abscence
et une zone dédiée au remplacement [M:P]
J'ai donc écris ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en X le user name et en Y le moment
If Not Intersect([A2:L65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 24) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 25) = Now
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' indiquer en AA le user name et en AB le moment
If Not Intersect([M2:p65000], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
Cells(Target.Row, 27) = Environ("username") ' ou GetUserName()
Cells(Target.Row, 28) = Now
Application.EnableEvents = True
End If
End Sub
La première procédure fonctionne, mais pas la seconde !!!
Que faire ?
Qui pourrait m'apporter ses lumières ?
merci d'avance et joyeuses fêtes à toutes et tous
Jean-Yves- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Merci Philippe
Cela fonctionne admirablement bien.
Bien sur, si tu connais un moyen plus court ou plus rapide, je suis
preneur.
Joyeuses Fêtes
Jean-Yves