OVH Cloud OVH Cloud

Cellules et couleur

8 réponses
Avatar
Michel69
Bonjour à tous,
D'avance merci pour le temps que vous pourriez consacrer à mon pb.
Dans une plage de cellules (sur feuil1), quelques unes sont sur fond rouge
(vbred).
Lorsque je saisis un caractère dans cette plage (J par exemple) je voudrais
récupérer par VBA sur feuil2!A2 une correspondance :
si caractère J dans une cellule rouge value = 12
en feuil2!B2 :
si caractère N dans une cellule rouge value = 8
1 sinon
merci encore pour votre aide précieuse
Michel69

8 réponses

Avatar
Daniel
Bonjour.
Mets dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Interior.Color <> vbRed Then Exit Sub
Select Case Target.Value
Case "J"
Sheets("Feuil2").Range("A2") = 12
Case "N"
Sheets("Feuil2").Range("A2") = 8
Case Else
Sheets("Feuil2").Range("A2") = 1
End Select
End Sub

Cordialement.
Daniel
"Michel69" a écrit dans le message de
news:
Bonjour à tous,
D'avance merci pour le temps que vous pourriez consacrer à mon pb.
Dans une plage de cellules (sur feuil1), quelques unes sont sur fond rouge
(vbred).
Lorsque je saisis un caractère dans cette plage (J par exemple) je
voudrais
récupérer par VBA sur feuil2!A2 une correspondance :
si caractère J dans une cellule rouge value = 12
en feuil2!B2 :
si caractère N dans une cellule rouge value = 8
1 sinon
merci encore pour votre aide précieuse
Michel69


Avatar
Michel69
Merci Daniel pour ta réponse rapide
J'essaie et te tiens au courant
michel69


Bonjour.
Mets dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Interior.Color <> vbRed Then Exit Sub
Select Case Target.Value
Case "J"
Sheets("Feuil2").Range("A2") = 12
Case "N"
Sheets("Feuil2").Range("A2") = 8
Case Else
Sheets("Feuil2").Range("A2") = 1
End Select
End Sub

Cordialement.
Daniel
"Michel69" a écrit dans le message de
news:
Bonjour à tous,
D'avance merci pour le temps que vous pourriez consacrer à mon pb.
Dans une plage de cellules (sur feuil1), quelques unes sont sur fond rouge
(vbred).
Lorsque je saisis un caractère dans cette plage (J par exemple) je
voudrais
récupérer par VBA sur feuil2!A2 une correspondance :
si caractère J dans une cellule rouge value = 12
en feuil2!B2 :
si caractère N dans une cellule rouge value = 8
1 sinon
merci encore pour votre aide précieuse
Michel69







Avatar
Jacky
Bonsoir,
Plage= à définir ou à nommer
'-----------
Sub jj()
[feuil2!a2:b2] = 1
For Each c In Range("plage")
If c.Interior.Color = vbRed And c = "J" Then [feuil2!a2] = 12
If c.Interior.Color = vbRed And c = "N" Then [feuil2!b2] = 8
Next
End Sub
'---------
Salutations
JJ

"Michel69" a écrit dans le message de
news:
Bonjour à tous,
D'avance merci pour le temps que vous pourriez consacrer à mon pb.
Dans une plage de cellules (sur feuil1), quelques unes sont sur fond rouge
(vbred).
Lorsque je saisis un caractère dans cette plage (J par exemple) je
voudrais

récupérer par VBA sur feuil2!A2 une correspondance :
si caractère J dans une cellule rouge value = 12
en feuil2!B2 :
si caractère N dans une cellule rouge value = 8
1 sinon
merci encore pour votre aide précieuse
Michel69


Avatar
Michel69
Bonjour Jacky,
Je te remercie pour ta réponse.
Ton code marche très bien seulement (sans abuser de ton temps) le but c'est
de cumuler.
A savoir qu'en feuil2!a2 il faudrait faire la somme du nb de j rencontrés
dans la plage de cellules.
ex : si j'ai 3 j dans 3 cellules rouges différentes, en feuil2!a2 il
faudrait qu'il y ait (3*126)
Merci de ton aide
Michel69


Bonsoir,
Plage= à définir ou à nommer
'-----------
Sub jj()
[feuil2!a2:b2] = 1
For Each c In Range("plage")
If c.Interior.Color = vbRed And c = "J" Then [feuil2!a2] = 12
If c.Interior.Color = vbRed And c = "N" Then [feuil2!b2] = 8
Next
End Sub
'---------
Salutations
JJ

"Michel69" a écrit dans le message de
news:
Bonjour à tous,
D'avance merci pour le temps que vous pourriez consacrer à mon pb.
Dans une plage de cellules (sur feuil1), quelques unes sont sur fond rouge
(vbred).
Lorsque je saisis un caractère dans cette plage (J par exemple) je
voudrais

récupérer par VBA sur feuil2!A2 une correspondance :
si caractère J dans une cellule rouge value = 12
en feuil2!B2 :
si caractère N dans une cellule rouge value = 8
1 sinon
merci encore pour votre aide précieuse
Michel69







Avatar
Michel69
Bonjour Daniel,
Merci pour ta réponse rapide.
Ton code marche très bien.
J'ai simplement oublier de préciser qu'il fallait faire la somme du nb de j
rencontrés dans les cellules rouges.
ex : si j'ai 3 "j" dans 3 cellules rouges il faudrait qu'en feuil2!a2 j'ai
(3*126) idem pour les "n" (3*8$)
Merci pour ton aide
Michel69


Bonjour.
Mets dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Interior.Color <> vbRed Then Exit Sub
Select Case Target.Value
Case "J"
Sheets("Feuil2").Range("A2") = 12
Case "N"
Sheets("Feuil2").Range("A2") = 8
Case Else
Sheets("Feuil2").Range("A2") = 1
End Select
End Sub

Cordialement.
Daniel
"Michel69" a écrit dans le message de
news:
Bonjour à tous,
D'avance merci pour le temps que vous pourriez consacrer à mon pb.
Dans une plage de cellules (sur feuil1), quelques unes sont sur fond rouge
(vbred).
Lorsque je saisis un caractère dans cette plage (J par exemple) je
voudrais
récupérer par VBA sur feuil2!A2 une correspondance :
si caractère J dans une cellule rouge value = 12
en feuil2!B2 :
si caractère N dans une cellule rouge value = 8
1 sinon
merci encore pour votre aide précieuse
Michel69







Avatar
Daniel
Bonjour.
Alors :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Interior.Color <> vbRed Then Exit Sub
Select Case Target.Value
Case "J"
Sheets("Feuil2").Range("A2") = 12 + _
Sheets("Feuil2").Range("A2")
Case "N"
Sheets("Feuil2").Range("A2") = 8 + _
Sheets("Feuil2").Range("A2")
Case Else
Sheets("Feuil2").Range("A2") = 1 + _
Sheets("Feuil2").Range("A2")
End Select
End Sub

Cordialement.
Daniel
"Michel69" a écrit dans le message de
news:
Bonjour Daniel,
Merci pour ta réponse rapide.
Ton code marche très bien.
J'ai simplement oublier de préciser qu'il fallait faire la somme du nb de
j
rencontrés dans les cellules rouges.
ex : si j'ai 3 "j" dans 3 cellules rouges il faudrait qu'en feuil2!a2 j'ai
(3*126) idem pour les "n" (3*8$)
Merci pour ton aide
Michel69





Avatar
Jacky
Re..
'-----------
Sub jj()
[feuil2!a2:b2] = 0
For Each c In Range("plage")
If c.Interior.Color = vbRed And c = "J" Then [feuil2!a2] = 12 + [feuil2!a2]
If c.Interior.Color = vbRed And c = "N" Then [feuil2!b2] = 8 + [feuil2!b2]
Next
'-------------
Salutations
JJ

End Sub
"Michel69" a écrit dans le message de
news:
Bonjour Jacky,
Je te remercie pour ta réponse.
Ton code marche très bien seulement (sans abuser de ton temps) le but
c'est

de cumuler.
A savoir qu'en feuil2!a2 il faudrait faire la somme du nb de j rencontrés
dans la plage de cellules.
ex : si j'ai 3 j dans 3 cellules rouges différentes, en feuil2!a2 il
faudrait qu'il y ait (3*126)
Merci de ton aide
Michel69


Bonsoir,
Plage= à définir ou à nommer
'-----------
Sub jj()
[feuil2!a2:b2] = 1
For Each c In Range("plage")
If c.Interior.Color = vbRed And c = "J" Then [feuil2!a2] = 12
If c.Interior.Color = vbRed And c = "N" Then [feuil2!b2] = 8
Next
End Sub
'---------
Salutations
JJ

"Michel69" a écrit dans le message
de


news:
Bonjour à tous,
D'avance merci pour le temps que vous pourriez consacrer à mon pb.
Dans une plage de cellules (sur feuil1), quelques unes sont sur fond
rouge



(vbred).
Lorsque je saisis un caractère dans cette plage (J par exemple) je
voudrais

récupérer par VBA sur feuil2!A2 une correspondance :
si caractère J dans une cellule rouge value = 12
en feuil2!B2 :
si caractère N dans une cellule rouge value = 8
1 sinon
merci encore pour votre aide précieuse
Michel69









Avatar
Michel69
Merci JJ
celà marche nickel !
Encore merci
Michel69


Re..
'-----------
Sub jj()
[feuil2!a2:b2] = 0
For Each c In Range("plage")
If c.Interior.Color = vbRed And c = "J" Then [feuil2!a2] = 12 + [feuil2!a2]
If c.Interior.Color = vbRed And c = "N" Then [feuil2!b2] = 8 + [feuil2!b2]
Next
'-------------
Salutations
JJ

End Sub
"Michel69" a écrit dans le message de
news:
Bonjour Jacky,
Je te remercie pour ta réponse.
Ton code marche très bien seulement (sans abuser de ton temps) le but
c'est

de cumuler.
A savoir qu'en feuil2!a2 il faudrait faire la somme du nb de j rencontrés
dans la plage de cellules.
ex : si j'ai 3 j dans 3 cellules rouges différentes, en feuil2!a2 il
faudrait qu'il y ait (3*126)
Merci de ton aide
Michel69


Bonsoir,
Plage= à définir ou à nommer
'-----------
Sub jj()
[feuil2!a2:b2] = 1
For Each c In Range("plage")
If c.Interior.Color = vbRed And c = "J" Then [feuil2!a2] = 12
If c.Interior.Color = vbRed And c = "N" Then [feuil2!b2] = 8
Next
End Sub
'---------
Salutations
JJ

"Michel69" a écrit dans le message
de


news:
Bonjour à tous,
D'avance merci pour le temps que vous pourriez consacrer à mon pb.
Dans une plage de cellules (sur feuil1), quelques unes sont sur fond
rouge



(vbred).
Lorsque je saisis un caractère dans cette plage (J par exemple) je
voudrais

récupérer par VBA sur feuil2!A2 une correspondance :
si caractère J dans une cellule rouge value = 12
en feuil2!B2 :
si caractère N dans une cellule rouge value = 8
1 sinon
merci encore pour votre aide précieuse
Michel69