cellule rouge entraine un évènement en automatique
11 réponses
daiman
bonjour,
j'ai crée une acro qui fonctionne assez bien. mais voilà, pour la lancre il
faut que je l'execute. j'aimerais quel ce lance à chaque changement sur un
plage bien spécifique.
en fait lorsque je colorise une cellule en rouge j'aimerais que la cellule
juste en dessous ce mette à 1 automatiquement.
voilà ma macro:
Sub rouge()
For Each c In [d5:dy5]
If c.Interior.ColorIndex = 3 Then
c.Select
colonne = ActiveCell.Column
ligne = ActiveCell.Row
a = ligne + 1
Cells(a, colonne).Value = 1
Else
If c.Interior.ColorIndex = xlNone Then
c.Select
colonne = ActiveCell.Column
ligne = ActiveCell.Row
a = ligne + 1
Cells(a, colonne).Value = 0
End If
End If
Next c
End Sub
oui ta raison. je ne l'ai pas crée, c'estpour sa que sa fonctionnais pas. c'est ok maintenant "JB" a écrit dans le message de news:
Bonjour,
Il faut que le nom de champ existe:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next If [mémo].Row = 5 Then Calculate On Error GoTo 0 If Target.Row = 5 And Target.Count = 1 Then ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address End If End Sub
JB
On 17 mar, 23:01, "daiman" wrote:
j'ai changé le nom du champ par "dédé". sa ne fonctionne pas. pourquoi? sa fonctionne avec mémo mais pas avec dédé.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("dédé").Row = 5 Then [dédé].Offset(1, 0) = IIf([dédé].Interior.ColorIndex = 3, 1, 0) End If If Target.Row = 5 And Target.Count = 1 Then ActiveWorkbook.Names.Add Name:="dédé", RefersTo:="=" & Target.Address End If End Sub
"JB" a écrit dans le message de news:
Bonjour,
-La fonction NumCoul(cel) calcule 1 si la cellule est rouge. -Nous pourrions faire plus simple en faisant:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Calculate End Sub
Mais le tableau serait recalculé à chaque sélection de cellule.
Pour ne recalculer le tableau que si l'opérateur a cliqué sur la ligne 5:
-On mémorise l'adresse de la cellule cliquée dans le nom de champ mémo.
If Target.Row = 5 And Target.Count = 1 Then ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address End If
-Lorsque l'opérateur clique sur une cellule quelconque, on vérifie si le curseur était avant sur la ligne 5. Si c'est le cas, on actualise le tableau avec Calculate.
If [mémo].Row = 5 Then Calculate
JB
On 16 mar, 23:54, "daiman" wrote:
comment as-tu défini ta plage? et quoi sert la "Function NumCoul(cel)"
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If [mémo].Row = 5 Then Calculate If Target.Row = 5 And Target.Count = 1 Then ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address End If End Sub
Function NumCoul(cel) Application.Volatile NumCoul = IIf(cel.Interior.ColorIndex = 3, 1, 0) End Function
"JB" a écrit dans le message de news:
http://cjoint.com/?dqwigVzJtn
JB
On 16 mar, 22:01, JB wrote:
Bonsoir,
On ne peut pas déclencher un événnement sur un changement de couleur. Sur l'exemple, l'écriture du 1 se fait lorsque l'on change de cellule après avoir modifié une couleur en rouge sur la ligne 5
http://cjoint.com/?dqv6QMJqgi
JBhttp://boisgontierjacques.free.fr/
On 16 mar, 20:54, "daiman" wrote:
bonjour, j'ai crée une acro qui fonctionne assez bien. mais voilà, pour la lancre il faut que je l'execute. j'aimerais quel ce lance à chaque changement sur un plage bien spécifique.
en fait lorsque je colorise une cellule en rouge j'aimerais que la cellule juste en dessous ce mette à 1 automatiquement.
voilà ma macro:
Sub rouge() For Each c In [d5:dy5] If c.Interior.ColorIndex = 3 Then c.Select colonne = ActiveCell.Column ligne = ActiveCell.Row a = ligne + 1 Cells(a, colonne).Value = 1 Else If c.Interior.ColorIndex = xlNone Then c.Select colonne = ActiveCell.Column ligne = ActiveCell.Row a = ligne + 1 Cells(a, colonne).Value = 0 End If End If Next c End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
oui ta raison.
je ne l'ai pas crée, c'estpour sa que sa fonctionnais pas. c'est ok
maintenant
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
0f6af848-7e2f-4faa-aa4a-f6652e1111e8@f63g2000hsf.googlegroups.com...
Bonjour,
Il faut que le nom de champ existe:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If [mémo].Row = 5 Then Calculate
On Error GoTo 0
If Target.Row = 5 And Target.Count = 1 Then
ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" &
Target.Address
End If
End Sub
JB
On 17 mar, 23:01, "daiman" <daim...@free.fr> wrote:
j'ai changé le nom du champ par "dédé". sa ne fonctionne pas. pourquoi? sa
fonctionne avec mémo mais pas avec dédé.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("dédé").Row = 5 Then
[dédé].Offset(1, 0) = IIf([dédé].Interior.ColorIndex = 3, 1, 0)
End If
If Target.Row = 5 And Target.Count = 1 Then
ActiveWorkbook.Names.Add Name:="dédé", RefersTo:="=" & Target.Address
End If
End Sub
"JB" <boisgont...@hotmail.com> a écrit dans le message de news:
39003474-dc9f-4a57-aac0-eede7c2da...@z38g2000hsc.googlegroups.com...
Bonjour,
-La fonction NumCoul(cel) calcule 1 si la cellule est rouge.
-Nous pourrions faire plus simple en faisant:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
Mais le tableau serait recalculé à chaque sélection de cellule.
Pour ne recalculer le tableau que si l'opérateur a cliqué sur la ligne
5:
-On mémorise l'adresse de la cellule cliquée dans le nom de champ
mémo.
If Target.Row = 5 And Target.Count = 1 Then
ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" &
Target.Address
End If
-Lorsque l'opérateur clique sur une cellule quelconque, on vérifie si
le curseur était avant sur la ligne 5. Si c'est le cas, on actualise
le tableau avec Calculate.
If [mémo].Row = 5 Then Calculate
JB
On 16 mar, 23:54, "daiman" <daim...@free.fr> wrote:
comment as-tu défini ta plage? et quoi sert la "Function NumCoul(cel)"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [mémo].Row = 5 Then Calculate
If Target.Row = 5 And Target.Count = 1 Then
ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address
End If
End Sub
Function NumCoul(cel)
Application.Volatile
NumCoul = IIf(cel.Interior.ColorIndex = 3, 1, 0)
End Function
"JB" <boisgont...@hotmail.com> a écrit dans le message de news:
cf2640a6-793e-48ee-abc8-c102ae66e...@a1g2000hsb.googlegroups.com...
http://cjoint.com/?dqwigVzJtn
JB
On 16 mar, 22:01, JB <boisgont...@hotmail.com> wrote:
Bonsoir,
On ne peut pas déclencher un événnement sur un changement de couleur.
Sur l'exemple, l'écriture du 1 se fait lorsque l'on change de cellule
après avoir modifié une couleur en rouge sur la ligne 5
http://cjoint.com/?dqv6QMJqgi
JBhttp://boisgontierjacques.free.fr/
On 16 mar, 20:54, "daiman" <daim...@free.fr> wrote:
bonjour,
j'ai crée une acro qui fonctionne assez bien. mais voilà, pour la
lancre
il
faut que je l'execute. j'aimerais quel ce lance à chaque changement
sur
un
plage bien spécifique.
en fait lorsque je colorise une cellule en rouge j'aimerais que la
cellule
juste en dessous ce mette à 1 automatiquement.
voilà ma macro:
Sub rouge()
For Each c In [d5:dy5]
If c.Interior.ColorIndex = 3 Then
c.Select
colonne = ActiveCell.Column
ligne = ActiveCell.Row
a = ligne + 1
Cells(a, colonne).Value = 1
Else
If c.Interior.ColorIndex = xlNone Then
c.Select
colonne = ActiveCell.Column
ligne = ActiveCell.Row
a = ligne + 1
Cells(a, colonne).Value = 0
End If
End If
Next c
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des
messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des
messages précédents -
oui ta raison. je ne l'ai pas crée, c'estpour sa que sa fonctionnais pas. c'est ok maintenant "JB" a écrit dans le message de news:
Bonjour,
Il faut que le nom de champ existe:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next If [mémo].Row = 5 Then Calculate On Error GoTo 0 If Target.Row = 5 And Target.Count = 1 Then ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address End If End Sub
JB
On 17 mar, 23:01, "daiman" wrote:
j'ai changé le nom du champ par "dédé". sa ne fonctionne pas. pourquoi? sa fonctionne avec mémo mais pas avec dédé.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("dédé").Row = 5 Then [dédé].Offset(1, 0) = IIf([dédé].Interior.ColorIndex = 3, 1, 0) End If If Target.Row = 5 And Target.Count = 1 Then ActiveWorkbook.Names.Add Name:="dédé", RefersTo:="=" & Target.Address End If End Sub
"JB" a écrit dans le message de news:
Bonjour,
-La fonction NumCoul(cel) calcule 1 si la cellule est rouge. -Nous pourrions faire plus simple en faisant:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Calculate End Sub
Mais le tableau serait recalculé à chaque sélection de cellule.
Pour ne recalculer le tableau que si l'opérateur a cliqué sur la ligne 5:
-On mémorise l'adresse de la cellule cliquée dans le nom de champ mémo.
If Target.Row = 5 And Target.Count = 1 Then ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address End If
-Lorsque l'opérateur clique sur une cellule quelconque, on vérifie si le curseur était avant sur la ligne 5. Si c'est le cas, on actualise le tableau avec Calculate.
If [mémo].Row = 5 Then Calculate
JB
On 16 mar, 23:54, "daiman" wrote:
comment as-tu défini ta plage? et quoi sert la "Function NumCoul(cel)"
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If [mémo].Row = 5 Then Calculate If Target.Row = 5 And Target.Count = 1 Then ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address End If End Sub
Function NumCoul(cel) Application.Volatile NumCoul = IIf(cel.Interior.ColorIndex = 3, 1, 0) End Function
"JB" a écrit dans le message de news:
http://cjoint.com/?dqwigVzJtn
JB
On 16 mar, 22:01, JB wrote:
Bonsoir,
On ne peut pas déclencher un événnement sur un changement de couleur. Sur l'exemple, l'écriture du 1 se fait lorsque l'on change de cellule après avoir modifié une couleur en rouge sur la ligne 5
http://cjoint.com/?dqv6QMJqgi
JBhttp://boisgontierjacques.free.fr/
On 16 mar, 20:54, "daiman" wrote:
bonjour, j'ai crée une acro qui fonctionne assez bien. mais voilà, pour la lancre il faut que je l'execute. j'aimerais quel ce lance à chaque changement sur un plage bien spécifique.
en fait lorsque je colorise une cellule en rouge j'aimerais que la cellule juste en dessous ce mette à 1 automatiquement.
voilà ma macro:
Sub rouge() For Each c In [d5:dy5] If c.Interior.ColorIndex = 3 Then c.Select colonne = ActiveCell.Column ligne = ActiveCell.Row a = ligne + 1 Cells(a, colonne).Value = 1 Else If c.Interior.ColorIndex = xlNone Then c.Select colonne = ActiveCell.Column ligne = ActiveCell.Row a = ligne + 1 Cells(a, colonne).Value = 0 End If End If Next c End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -