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

cellule rouge entraine un évènement en automatique

11 réponses
Avatar
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

10 réponses

1 2
Avatar
JB
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

JB
http://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 lanc re 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


Avatar
JB
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 la ncre il
faut que je l'execute. j'aimerais quel ce lance à chaque changement su r un
plage bien spécifique.

en fait lorsque je colorise une cellule en rouge j'aimerais que la cellu le
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 -



Avatar
daiman
j'ai compris ton code sauf sa :
If Target.Row = 5 And Target.Count = 1 Then
ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address
End If
pourrais-tu me l'expliquer stp
"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 -



Avatar
daiman
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 -



Avatar
Fredo P.
--



j'ai compris ton code sauf sa :
If Target.Row = 5 And Target.Count = 1 Then
ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address
End If
pourrais-tu me l'expliquer stp
Pour JB n'en peut plus

En terme textuel:
Si la selection est en ligne 5, colonne 1
Sur ce classeur,ajoute un nom :="mémo", dont la référence de la cellule:=
l'adresse de la sélection

Avatar
Fredo P.
--


If Target.Row = 5 And Target.Count = 1 Then
ActiveWorkbook.Names.Add Name:="mémo", RefersTo:="=" & Target.Address
End If
pourrais-tu me l'expliquer stp
En terme textuel:

Si la selection est en ligne 5, colonne 1
Sur ce classeur,ajoute un nom :="mémo", dont la référence de la plage: l'adresse de la sélection

Avatar
JB
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:="=" & Tar get.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 coule ur.
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 -




Avatar
daiman
merci. je vais bidouiller un peu voir si j'ai bien compris.
"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 -




Avatar
daiman
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 -




Avatar
JB
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. pourqu oi? 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:="=" & T arget.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.Ad dress
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 cou leur.
Sur l'exemple, l'écriture du 1 se fait lorsque l'on change de cellul e
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 l a
lancre
il
faut que je l'execute. j'aimerais quel ce lance à chaque changemen t
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 de s
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 -





1 2