Je viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" a écrit dans le message de news:
uMe%Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une première
saisie et ça le met pas en rouge et je le refait et là ça fonctionne,
pourquoi?
Un gros merci
"FdeCourt" a écrit dans le message de news:
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la mettre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiquesça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" a écrit dans le message de news:
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être dans
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub et
If Target.Column <> 56 Then Exit Sub
Quelques explications :Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les rangesIf Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins une des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourciSub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defautSub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche EnterSub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je neTrop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" a écrit dans le message de news:
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères rouges a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà existante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
'ActiveSheet.Protect
End Sub
Je viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" <hahaha@videotron.ca> a écrit dans le message de news:
uMe%23NX9OHHA.1276@TK2MSFTNGP04.phx.gbl...
Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une première
saisie et ça le met pas en rouge et je le refait et là ça fonctionne,
pourquoi?
Un gros merci
"FdeCourt" <fdecourt@gmail.com> a écrit dans le message de news:
1169199775.403097.69120@q2g2000cwa.googlegroups.com...
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la mettre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiques
ça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" <fdecourt@gmail.com> a écrit dans le message de news:
1168968715.743663.258000@a75g2000cwd.googlegroups.com...
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être dans
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub et
If Target.Column <> 56 Then Exit Sub
Quelques explications :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les ranges
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins une des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourci
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defaut
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche Enter
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je ne
Trop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" <fdecourt@gmail.com> a écrit dans le message de news:
1168885907.796060.9770@38g2000cwa.googlegroups.com...
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56
Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères rouges a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà existante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
'ActiveSheet.Protect
End Sub
Je viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" a écrit dans le message de news:
uMe%Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une première
saisie et ça le met pas en rouge et je le refait et là ça fonctionne,
pourquoi?
Un gros merci
"FdeCourt" a écrit dans le message de news:
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la mettre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiquesça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" a écrit dans le message de news:
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être dans
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub et
If Target.Column <> 56 Then Exit Sub
Quelques explications :Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les rangesIf Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins une des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourciSub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defautSub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche EnterSub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je neTrop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" a écrit dans le message de news:
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères rouges a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà existante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
'ActiveSheet.Protect
End Sub
Je viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" a écrit dans le message de news:
uMe%Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une première
saisie et ça le met pas en rouge et je le refait et là ça fonctionne,
pourquoi?
Un gros merci
"FdeCourt" a écrit dans le message de news:
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la mettre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiquesça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" a écrit dans le message de news:
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être dans
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub et
If Target.Column <> 56 Then Exit Sub
Quelques explications :Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les rangesIf Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins une des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourciSub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defautSub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche EnterSub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je neTrop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" a écrit dans le message de news:
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères rouges a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà existante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
'ActiveSheet.Protect
End Sub
Je viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" <hahaha@videotron.ca> a écrit dans le message de news:
uMe%23NX9OHHA.1276@TK2MSFTNGP04.phx.gbl...
Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une première
saisie et ça le met pas en rouge et je le refait et là ça fonctionne,
pourquoi?
Un gros merci
"FdeCourt" <fdecourt@gmail.com> a écrit dans le message de news:
1169199775.403097.69120@q2g2000cwa.googlegroups.com...
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la mettre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiques
ça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" <fdecourt@gmail.com> a écrit dans le message de news:
1168968715.743663.258000@a75g2000cwd.googlegroups.com...
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être dans
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub et
If Target.Column <> 56 Then Exit Sub
Quelques explications :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les ranges
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins une des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourci
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defaut
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche Enter
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je ne
Trop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" <fdecourt@gmail.com> a écrit dans le message de news:
1168885907.796060.9770@38g2000cwa.googlegroups.com...
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56
Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères rouges a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà existante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
'ActiveSheet.Protect
End Sub
Je viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" a écrit dans le message de news:
uMe%Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une première
saisie et ça le met pas en rouge et je le refait et là ça fonctionne,
pourquoi?
Un gros merci
"FdeCourt" a écrit dans le message de news:
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la mettre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiquesça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" a écrit dans le message de news:
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être dans
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub et
If Target.Column <> 56 Then Exit Sub
Quelques explications :Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les rangesIf Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins une des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourciSub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defautSub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche EnterSub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je neTrop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" a écrit dans le message de news:
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères rouges a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà existante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
'ActiveSheet.Protect
End Sub
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Je comprends que je dois remplacer
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is Nothing
Or Not isect4 Is Nothing Then
par
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Mais je ne comprends après, je dois remplacer ton nouveau code par "End If"
Merci
"FdeCourt" a écrit dans le message de news:
Hello,
Je viens de relire ton problème, et j'aurais un complément d'info à
demander :
est ce que tu veux que ca créé un raccourci lorsdque tu appuis sur
Enter, ou tu veux mettre en rouge toute modification des cellule dans
les plages indiquées. La différence est que si tu quitte la cellule
en appuyant sur la touche TAB, alors ca ne mettra pas la police en
rouge, ni si tu quitte la cellule en cliquant sur une autre.
Dans le deuxième cas (ou c'est chaque changement qui doit être
marqué, quelque soit la touche pressée pour sortir), tu n'a pas
besoin d'un raccourci, mais tu dois juste mettre un truc comme ca :
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
A la place du If Not isect1 Is Nothing ........ End IfJe viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" a écrit dans le message de news:
uMe%Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une prem ière
saisie et ça le met pas en rouge et je le refait et là ça fonct ionne,
pourquoi?
Un gros merci
"FdeCourt" a écrit dans le message de news:
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la met tre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiquesça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" a écrit dans le message de news:
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être da ns
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub et
If Target.Column <> 56 Then Exit Sub
Quelques explications :Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les rangesIf Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins un e des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourciSub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defautSub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche EnterSub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je neTrop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" a écrit dans le message de news:
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères roug es a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà exi stante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désac tive la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'ac tive
'ActiveSheet.Protect
End Sub- Masquer le texte des messages précédents -- Affiche r le texte des messages précédents -
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Je comprends que je dois remplacer
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is Nothing
Or Not isect4 Is Nothing Then
par
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Mais je ne comprends après, je dois remplacer ton nouveau code par "End If"
Merci
"FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
1169226455.463913.195...@l53g2000cwa.googlegroups.com...
Hello,
Je viens de relire ton problème, et j'aurais un complément d'info à
demander :
est ce que tu veux que ca créé un raccourci lorsdque tu appuis sur
Enter, ou tu veux mettre en rouge toute modification des cellule dans
les plages indiquées. La différence est que si tu quitte la cellule
en appuyant sur la touche TAB, alors ca ne mettra pas la police en
rouge, ni si tu quitte la cellule en cliquant sur une autre.
Dans le deuxième cas (ou c'est chaque changement qui doit être
marqué, quelque soit la touche pressée pour sortir), tu n'a pas
besoin d'un raccourci, mais tu dois juste mettre un truc comme ca :
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
A la place du If Not isect1 Is Nothing ........ End If
Je viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" <hah...@videotron.ca> a écrit dans le message de news:
uMe%23NX9OHHA.1...@TK2MSFTNGP04.phx.gbl...
Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une prem ière
saisie et ça le met pas en rouge et je le refait et là ça fonct ionne,
pourquoi?
Un gros merci
"FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
1169199775.403097.69...@q2g2000cwa.googlegroups.com...
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la met tre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiques
ça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
1168968715.743663.258...@a75g2000cwd.googlegroups.com...
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être da ns
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub et
If Target.Column <> 56 Then Exit Sub
Quelques explications :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les ranges
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins un e des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourci
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defaut
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche Enter
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je ne
Trop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
1168885907.796060.9...@38g2000cwa.googlegroups.com...
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56
Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères roug es a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà exi stante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désac tive la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'ac tive
'ActiveSheet.Protect
End Sub- Masquer le texte des messages précédents -- Affiche r le texte des messages précédents -
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Je comprends que je dois remplacer
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is Nothing
Or Not isect4 Is Nothing Then
par
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Mais je ne comprends après, je dois remplacer ton nouveau code par "End If"
Merci
"FdeCourt" a écrit dans le message de news:
Hello,
Je viens de relire ton problème, et j'aurais un complément d'info à
demander :
est ce que tu veux que ca créé un raccourci lorsdque tu appuis sur
Enter, ou tu veux mettre en rouge toute modification des cellule dans
les plages indiquées. La différence est que si tu quitte la cellule
en appuyant sur la touche TAB, alors ca ne mettra pas la police en
rouge, ni si tu quitte la cellule en cliquant sur une autre.
Dans le deuxième cas (ou c'est chaque changement qui doit être
marqué, quelque soit la touche pressée pour sortir), tu n'a pas
besoin d'un raccourci, mais tu dois juste mettre un truc comme ca :
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
A la place du If Not isect1 Is Nothing ........ End IfJe viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" a écrit dans le message de news:
uMe%Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une prem ière
saisie et ça le met pas en rouge et je le refait et là ça fonct ionne,
pourquoi?
Un gros merci
"FdeCourt" a écrit dans le message de news:
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la met tre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiquesça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" a écrit dans le message de news:
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être da ns
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub et
If Target.Column <> 56 Then Exit Sub
Quelques explications :Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les rangesIf Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins un e des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourciSub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defautSub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche EnterSub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je neTrop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" a écrit dans le message de news:
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères roug es a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà exi stante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désac tive la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'ac tive
'ActiveSheet.Protect
End Sub- Masquer le texte des messages précédents -- Affiche r le texte des messages précédents -
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Je comprends que je dois remplacer
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is Nothing
Or Not isect4 Is Nothing Then
par
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Mais je ne comprends après, je dois remplacer ton nouveau code par "End
If"
Merci
"FdeCourt" a écrit dans le message de news:
Hello,
Je viens de relire ton problème, et j'aurais un complément d'info à
demander :
est ce que tu veux que ca créé un raccourci lorsdque tu appuis sur
Enter, ou tu veux mettre en rouge toute modification des cellule dans
les plages indiquées. La différence est que si tu quitte la cellule
en appuyant sur la touche TAB, alors ca ne mettra pas la police en
rouge, ni si tu quitte la cellule en cliquant sur une autre.
Dans le deuxième cas (ou c'est chaque changement qui doit être
marqué, quelque soit la touche pressée pour sortir), tu n'a pas
besoin d'un raccourci, mais tu dois juste mettre un truc comme ca :
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
A la place du If Not isect1 Is Nothing ........ End IfJe viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" a écrit dans le message de news:
uMe%Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une première
saisie et ça le met pas en rouge et je le refait et là ça fonctionne,
pourquoi?
Un gros merci
"FdeCourt" a écrit dans le message de news:
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la mettre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiquesça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" a écrit dans le message de news:
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être dans
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub
et
If Target.Column <> 56 Then Exit Sub
Quelques explications :Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les rangesIf Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins une des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourciSub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defautSub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche EnterSub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je neTrop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" a écrit dans le message de news:
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères rouges
a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà existante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive
la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________
l'active
'ActiveSheet.Protect
End Sub- Masquer le texte des messages précédents -- Afficher le
texte des messages précédents -
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Je comprends que je dois remplacer
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is Nothing
Or Not isect4 Is Nothing Then
par
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Mais je ne comprends après, je dois remplacer ton nouveau code par "End
If"
Merci
"FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
1169226455.463913.195...@l53g2000cwa.googlegroups.com...
Hello,
Je viens de relire ton problème, et j'aurais un complément d'info à
demander :
est ce que tu veux que ca créé un raccourci lorsdque tu appuis sur
Enter, ou tu veux mettre en rouge toute modification des cellule dans
les plages indiquées. La différence est que si tu quitte la cellule
en appuyant sur la touche TAB, alors ca ne mettra pas la police en
rouge, ni si tu quitte la cellule en cliquant sur une autre.
Dans le deuxième cas (ou c'est chaque changement qui doit être
marqué, quelque soit la touche pressée pour sortir), tu n'a pas
besoin d'un raccourci, mais tu dois juste mettre un truc comme ca :
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
A la place du If Not isect1 Is Nothing ........ End If
Je viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" <hah...@videotron.ca> a écrit dans le message de news:
uMe%23NX9OHHA.1...@TK2MSFTNGP04.phx.gbl...
Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une première
saisie et ça le met pas en rouge et je le refait et là ça fonctionne,
pourquoi?
Un gros merci
"FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
1169199775.403097.69...@q2g2000cwa.googlegroups.com...
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la mettre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiques
ça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
1168968715.743663.258...@a75g2000cwd.googlegroups.com...
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être dans
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub
et
If Target.Column <> 56 Then Exit Sub
Quelques explications :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les ranges
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins une des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourci
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defaut
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche Enter
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je ne
Trop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
1168885907.796060.9...@38g2000cwa.googlegroups.com...
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56
Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères rouges
a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà existante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive
la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________
l'active
'ActiveSheet.Protect
End Sub- Masquer le texte des messages précédents -- Afficher le
texte des messages précédents -
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Je comprends que je dois remplacer
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is Nothing
Or Not isect4 Is Nothing Then
par
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
Mais je ne comprends après, je dois remplacer ton nouveau code par "End
If"
Merci
"FdeCourt" a écrit dans le message de news:
Hello,
Je viens de relire ton problème, et j'aurais un complément d'info à
demander :
est ce que tu veux que ca créé un raccourci lorsdque tu appuis sur
Enter, ou tu veux mettre en rouge toute modification des cellule dans
les plages indiquées. La différence est que si tu quitte la cellule
en appuyant sur la touche TAB, alors ca ne mettra pas la police en
rouge, ni si tu quitte la cellule en cliquant sur une autre.
Dans le deuxième cas (ou c'est chaque changement qui doit être
marqué, quelque soit la touche pressée pour sortir), tu n'a pas
besoin d'un raccourci, mais tu dois juste mettre un truc comme ca :
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is _
Nothing _
Or Not isect4 Is Nothing Then Target.Font.ColorIndex = 3
A la place du If Not isect1 Is Nothing ........ End IfJe viens de découvrir un autre problème,
J'ai un autre fichier d'ouvert sans cette macro et quand je modifie une
cellule , il change en rouge!!!!!!!!!!!!!!
Je ne COMPREND RIENNNNNNNN!!!!!
"Érico" a écrit dans le message de news:
uMe%Woowww!!!
Enfin, ça l'air de fonctionné sauf que des fois, je fais une première
saisie et ça le met pas en rouge et je le refait et là ça fonctionne,
pourquoi?
Un gros merci
"FdeCourt" a écrit dans le message de news:
Normal que ce ne fasse rien. Ta macro s'arrete si la cellule n'est pas
dans la colonne 56. Donc avec les plages que tu as mis, forcément ca
ne marchera pas.
Ca dépend des controles que tu veux effectuer pour que ca marche.
Comme je te l'ai indiqué, pour moi le plus logique serait de la mettre
juste après
If Target.Count > 1 Then Exit Sub
Mais relis ta macro, et mais ce que je te propose à un endroit qui
correspond à tes besoins, en fonction des critères que tu indiquesça ne fonctionne pas et voici la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive la
protection
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________ l'active
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing
Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
End Sub
________________________________
"FdeCourt" a écrit dans le message de news:
Bonsoir,
Pas sur qu'il y ait de solution vraiment plus simple (peut être dans
les déclarations des isect, mais sinon je ne voit pas trop).
Le problème va être avec ta condition qui implique que ta macro soit
activée dans le cas ou Target est dans la colonne 56. Or les plages
que tu as données sont beaucoup plus vaste.
Donc tu peux mettre le code entre If Target.Count > 1 Then Exit Sub
et
If Target.Column <> 56 Then Exit Sub
Quelques explications :Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
Ca controle juste que la cellule est comprises dans les rangesIf Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Si Target (qui est la cellule sélectionnée) est dans au moins une des
4 plages, alors ca lance la macro cree_raccourci, sinon appelle
enleve_raccourci, qui elle supprime le raccourci.
C'est tout !
sinon, les macros suivantes, que tu mets dans un module standart :
Créé le raccourciSub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Remet l'action de la touche Enter par defautSub enleve_raccourci()
Application.OnKey "~"
End Sub
Est appellé par la touche EnterSub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset
Erico,
Peut être, mais je neTrop compliqué pour moi et trop risqué!
C'est pas possible d'avoir une macro plus simple.
Merci!
"FdeCourt" a écrit dans le message de news:
Hello,
Une possibilité, à intégrer dans ta macro :
Set isect1 = Application.Intersect(Target, Range("A17:BJ90"))
Set isect2 = Application.Intersect(Target, Range("A96:BJ141"))
Set isect3 = Application.Intersect(Target, Range("A146:BJ166"))
Set isect4 = Application.Intersect(Target, Range("A172:BJ192"))
If Not isect1 Is Nothing Or Not isect2 Is Nothing Or Not isect3 Is
Nothing Or Not isect4 Is Nothing Then
cree_raccourci
Else
enleve_raccourci
End If
Et il faut que tu créés deux macro (dans un module standart) :
Sub cree_raccourci()
Application.OnKey "~", "MonRaccourci"
End Sub
Sub enleve_raccourci()
Application.OnKey "~"
End Sub
Sub MonRaccourci()
Selection.Font.ColorIndex = 3
Selection.Offset(1, 0).Select
End Sub
Par contre je ne suis pas sur que ce soit comptatible avec ta 2eme
condition If Target.Column <> 56Bonjour à tous,
J'aimerais rajouter une macro qui va mettre en caractères rouges
a
chaque
fois que je fais "enter" au clavier.
Mettons dans les cellules suivantes:
A17 à BJ90
A96 à BJ141
A146 BJ166
A172 à BJ192
Et j'aimerais intégré cette macro dans la macro déjà existante de
la
feuille.
Merci!
Voici la macro existante:
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="Regie" '__________désactive
la
protection
'ActiveSheet.Unprotect
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value +
Target.Value
ActiveSheet.Protect Password:="Regie" '______________
l'active
'ActiveSheet.Protect
End Sub- Masquer le texte des messages précédents -- Afficher le
texte des messages précédents -