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

MFC en VBA

8 réponses
Avatar
Guido
Bonjour à tous,
je pense n'être pas le premier à poser la question, mais je désire avoir une
solution en VBa, puisqu'il est presque impossible d'avoir plus de 3
conditions normalement.

Mon tableau comportent 18 colonnes de "A" à "R" (les lignes sont à peu près
indéfinies)
Voici les dénominations qui se trouvent dans la Feuil1, qui me permettent
d'avoir en "C", via une liste de validation dans la feuil "Agenda":

OUI = (code couelur 35)
NON = (code couleur 38)
A FAIRE = (code couleur 36)
EN SUSPEND = (code couleur 40)
1 ENTRETIEN = (code couleur 8)
A FAIRE A SUIVRE = (code couelur 22)
RECHERCHE RENSEIGNEMENTS = (code couleur 46)
Il y a aussi la solution:
"vide" = (en blanc / sans mise en forme colorée)

Exemple:
C3 = EN SUSPEND, la ligne A3:R3 se changent en Brun (code couleur 40)

merci à qui pourrait m'aider à finaliser mon tableau.
Salutations à tous
Guido

8 réponses

Avatar
Jacky
Bonjour,
Un truc du genre devrait faire...
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
Target.Interior.ColorIndex = xlNone
With Target.Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End If
End Sub
'----------
Salutations
JJ

"Guido" a écrit dans le message de
news:
Bonjour à tous,
je pense n'être pas le premier à poser la question, mais je désire avoir
une

solution en VBa, puisqu'il est presque impossible d'avoir plus de 3
conditions normalement.

Mon tableau comportent 18 colonnes de "A" à "R" (les lignes sont à peu
près

indéfinies)
Voici les dénominations qui se trouvent dans la Feuil1, qui me permettent
d'avoir en "C", via une liste de validation dans la feuil "Agenda":

OUI = (code couelur 35)
NON = (code couleur 38)
A FAIRE = (code couleur 36)
EN SUSPEND = (code couleur 40)
1 ENTRETIEN = (code couleur 8)
A FAIRE A SUIVRE = (code couelur 22)
RECHERCHE RENSEIGNEMENTS = (code couleur 46)
Il y a aussi la solution:
"vide" = (en blanc / sans mise en forme colorée)

Exemple:
C3 = EN SUSPEND, la ligne A3:R3 se changent en Brun (code couleur 40)

merci à qui pourrait m'aider à finaliser mon tableau.
Salutations à tous
Guido








Avatar
Guido
Salut Jacky,
merci de ton aide.
Cela fonctionne bien sur mon tableau, mais cela me donne que la cellule dans
C.
Comment avoir la ligne colorée suivant C.
(c'est comme mon anglais: My VBa is not rich)
A+
Guido


"Jacky" a écrit dans le message de
news:
Bonjour,
Un truc du genre devrait faire...
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
Target.Interior.ColorIndex = xlNone
With Target.Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End If
End Sub
'----------
Salutations
JJ

"Guido" a écrit dans le message de
news:
Bonjour à tous,
je pense n'être pas le premier à poser la question, mais je désire avoir
une

solution en VBa, puisqu'il est presque impossible d'avoir plus de 3
conditions normalement.

Mon tableau comportent 18 colonnes de "A" à "R" (les lignes sont à peu
près

indéfinies)
Voici les dénominations qui se trouvent dans la Feuil1, qui me
permettent


d'avoir en "C", via une liste de validation dans la feuil "Agenda":

OUI = (code couelur 35)
NON = (code couleur 38)
A FAIRE = (code couleur 36)
EN SUSPEND = (code couleur 40)
1 ENTRETIEN = (code couleur 8)
A FAIRE A SUIVRE = (code couelur 22)
RECHERCHE RENSEIGNEMENTS = (code couleur 46)
Il y a aussi la solution:
"vide" = (en blanc / sans mise en forme colorée)

Exemple:
C3 = EN SUSPEND, la ligne A3:R3 se changent en Brun (code couleur 40)

merci à qui pourrait m'aider à finaliser mon tableau.
Salutations à tous
Guido












Avatar
Ardus Petus
Rn cas de sélection multiple, ta solution n'est pas rigoureuse.
Je propose les adaptations suivantes:

'--------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim selec As Range
Dim c As Range
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
For Each c In selec.Cells
With c.Interior
Select Case UCase(c.Value)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
Case Else: c.ColorIndex = xlNone
End Select
End With
Next c
End If
End Sub
'-----------------------

"Jacky" a écrit dans le message de
news:
Bonjour,
Un truc du genre devrait faire...
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
Target.Interior.ColorIndex = xlNone
With Target.Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End If
End Sub
'----------
Salutations
JJ

"Guido" a écrit dans le message de
news:
Bonjour à tous,
je pense n'être pas le premier à poser la question, mais je désire avoir
une

solution en VBa, puisqu'il est presque impossible d'avoir plus de 3
conditions normalement.

Mon tableau comportent 18 colonnes de "A" à "R" (les lignes sont à peu
près

indéfinies)
Voici les dénominations qui se trouvent dans la Feuil1, qui me
permettent


d'avoir en "C", via une liste de validation dans la feuil "Agenda":

OUI = (code couelur 35)
NON = (code couleur 38)
A FAIRE = (code couleur 36)
EN SUSPEND = (code couleur 40)
1 ENTRETIEN = (code couleur 8)
A FAIRE A SUIVRE = (code couelur 22)
RECHERCHE RENSEIGNEMENTS = (code couleur 46)
Il y a aussi la solution:
"vide" = (en blanc / sans mise en forme colorée)

Exemple:
C3 = EN SUSPEND, la ligne A3:R3 se changent en Brun (code couleur 40)

merci à qui pourrait m'aider à finaliser mon tableau.
Salutations à tous
Guido












Avatar
Jacky
Re..
Ca m'apprendra à lire jusqu'au bout...

A+
JJ

"Ardus Petus" a écrit dans le message de
news:%
Rn cas de sélection multiple, ta solution n'est pas rigoureuse.
Je propose les adaptations suivantes:

'--------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim selec As Range
Dim c As Range
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
For Each c In selec.Cells
With c.Interior
Select Case UCase(c.Value)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
Case Else: c.ColorIndex = xlNone
End Select
End With
Next c
End If
End Sub
'-----------------------

"Jacky" a écrit dans le message de
news:
Bonjour,
Un truc du genre devrait faire...
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
Target.Interior.ColorIndex = xlNone
With Target.Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End If
End Sub
'----------
Salutations
JJ

"Guido" a écrit dans le message de
news:
Bonjour à tous,
je pense n'être pas le premier à poser la question, mais je désire
avoir



une
solution en VBa, puisqu'il est presque impossible d'avoir plus de 3
conditions normalement.

Mon tableau comportent 18 colonnes de "A" à "R" (les lignes sont à peu
près

indéfinies)
Voici les dénominations qui se trouvent dans la Feuil1, qui me
permettent


d'avoir en "C", via une liste de validation dans la feuil "Agenda":

OUI = (code couelur 35)
NON = (code couleur 38)
A FAIRE = (code couleur 36)
EN SUSPEND = (code couleur 40)
1 ENTRETIEN = (code couleur 8)
A FAIRE A SUIVRE = (code couelur 22)
RECHERCHE RENSEIGNEMENTS = (code couleur 46)
Il y a aussi la solution:
"vide" = (en blanc / sans mise en forme colorée)

Exemple:
C3 = EN SUSPEND, la ligne A3:R3 se changent en Brun (code couleur 40)

merci à qui pourrait m'aider à finaliser mon tableau.
Salutations à tous
Guido
















Avatar
Guido
Hello Ardus Petus,
Merci pour ta réponse, mais elle ne colorie que la cellule et non la ligne
correspondante de A à R
Exemple:
C3 = A FAIRE
Ligne 3 de A3 à R3 en couleur 36



"Ardus Petus" a écrit dans le message de
news:%
Rn cas de sélection multiple, ta solution n'est pas rigoureuse.
Je propose les adaptations suivantes:

'--------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim selec As Range
Dim c As Range
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
For Each c In selec.Cells
With c.Interior
Select Case UCase(c.Value)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
Case Else: c.ColorIndex = xlNone
End Select
End With
Next c
End If
End Sub
'-----------------------

"Jacky" a écrit dans le message de
news:
Bonjour,
Un truc du genre devrait faire...
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
Target.Interior.ColorIndex = xlNone
With Target.Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End If
End Sub
'----------
Salutations
JJ

"Guido" a écrit dans le message de
news:
Bonjour à tous,
je pense n'être pas le premier à poser la question, mais je désire
avoir



une
solution en VBa, puisqu'il est presque impossible d'avoir plus de 3
conditions normalement.

Mon tableau comportent 18 colonnes de "A" à "R" (les lignes sont à peu
près

indéfinies)
Voici les dénominations qui se trouvent dans la Feuil1, qui me
permettent


d'avoir en "C", via une liste de validation dans la feuil "Agenda":

OUI = (code couelur 35)
NON = (code couleur 38)
A FAIRE = (code couleur 36)
EN SUSPEND = (code couleur 40)
1 ENTRETIEN = (code couleur 8)
A FAIRE A SUIVRE = (code couelur 22)
RECHERCHE RENSEIGNEMENTS = (code couleur 46)
Il y a aussi la solution:
"vide" = (en blanc / sans mise en forme colorée)

Exemple:
C3 = EN SUSPEND, la ligne A3:R3 se changent en Brun (code couleur 40)

merci à qui pourrait m'aider à finaliser mon tableau.
Salutations à tous
Guido
















Avatar
Jacky
Re..
En effet
Essaie ceci
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
plage = ("a" & Target.Row & ":r" & Target.Row)
Range([plage]).Interior.ColorIndex = xlNone
With Range([plage]).Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End Sub
'---------
JJ

"Guido" a écrit dans le message de news:
%
Salut Jacky,
merci de ton aide.
Cela fonctionne bien sur mon tableau, mais cela me donne que la cellule
dans
C.
Comment avoir la ligne colorée suivant C.
(c'est comme mon anglais: My VBa is not rich)
A+
Guido


"Jacky" a écrit dans le message de
news:
Bonjour,
Un truc du genre devrait faire...
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
Target.Interior.ColorIndex = xlNone
With Target.Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End If
End Sub
'----------
Salutations
JJ

"Guido" a écrit dans le message de
news:
Bonjour à tous,
je pense n'être pas le premier à poser la question, mais je désire
avoir
une

solution en VBa, puisqu'il est presque impossible d'avoir plus de 3
conditions normalement.

Mon tableau comportent 18 colonnes de "A" à "R" (les lignes sont à peu
près

indéfinies)
Voici les dénominations qui se trouvent dans la Feuil1, qui me
permettent


d'avoir en "C", via une liste de validation dans la feuil "Agenda":

OUI = (code couelur 35)
NON = (code couleur 38)
A FAIRE = (code couleur 36)
EN SUSPEND = (code couleur 40)
1 ENTRETIEN = (code couleur 8)
A FAIRE A SUIVRE = (code couelur 22)
RECHERCHE RENSEIGNEMENTS = (code couleur 46)
Il y a aussi la solution:
"vide" = (en blanc / sans mise en forme colorée)

Exemple:
C3 = EN SUSPEND, la ligne A3:R3 se changent en Brun (code couleur 40)

merci à qui pourrait m'aider à finaliser mon tableau.
Salutations à tous
Guido
















Avatar
Guido
Bonsoir Jacky,
Un grand merci pour ta dernière correction, Elle marche à merveille.
Salutations à toi
Guido


"Jacky" a écrit dans le message de
news:%
Re..
En effet
Essaie ceci
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
plage = ("a" & Target.Row & ":r" & Target.Row)
Range([plage]).Interior.ColorIndex = xlNone
With Range([plage]).Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End Sub
'---------
JJ

"Guido" a écrit dans le message de news:
%
Salut Jacky,
merci de ton aide.
Cela fonctionne bien sur mon tableau, mais cela me donne que la cellule
dans
C.
Comment avoir la ligne colorée suivant C.
(c'est comme mon anglais: My VBa is not rich)
A+
Guido


"Jacky" a écrit dans le message de
news:
Bonjour,
Un truc du genre devrait faire...
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A
adapter



If Not selec Is Nothing Then
Target.Interior.ColorIndex = xlNone
With Target.Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End If
End Sub
'----------
Salutations
JJ

"Guido" a écrit dans le message de
news:
Bonjour à tous,
je pense n'être pas le premier à poser la question, mais je désire
avoir
une

solution en VBa, puisqu'il est presque impossible d'avoir plus de 3
conditions normalement.

Mon tableau comportent 18 colonnes de "A" à "R" (les lignes sont à
peu




près
indéfinies)
Voici les dénominations qui se trouvent dans la Feuil1, qui me
permettent


d'avoir en "C", via une liste de validation dans la feuil "Agenda":

OUI = (code couelur 35)
NON = (code couleur 38)
A FAIRE = (code couleur 36)
EN SUSPEND = (code couleur 40)
1 ENTRETIEN = (code couleur 8)
A FAIRE A SUIVRE = (code couelur 22)
RECHERCHE RENSEIGNEMENTS = (code couleur 46)
Il y a aussi la solution:
"vide" = (en blanc / sans mise en forme colorée)

Exemple:
C3 = EN SUSPEND, la ligne A3:R3 se changent en Brun (code couleur 40)

merci à qui pourrait m'aider à finaliser mon tableau.
Salutations à tous
Guido




















Avatar
Guido
Cher Ardus,
merci pour ton aide et tes lumières.
Très apréciables car je peux finir mon tableau correctement.
Bien à toi.
Guido

"Ardus Petus" a écrit dans le message de
news:%
Rn cas de sélection multiple, ta solution n'est pas rigoureuse.
Je propose les adaptations suivantes:

'--------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim selec As Range
Dim c As Range
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
For Each c In selec.Cells
With c.Interior
Select Case UCase(c.Value)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
Case Else: c.ColorIndex = xlNone
End Select
End With
Next c
End If
End Sub
'-----------------------

"Jacky" a écrit dans le message de
news:
Bonjour,
Un truc du genre devrait faire...
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
Set selec = Application.Intersect(Target, Range("A1:R50000")) 'A adapter
If Not selec Is Nothing Then
Target.Interior.ColorIndex = xlNone
With Target.Interior
Select Case UCase(Target)
Case "OUI": .ColorIndex = 35
Case "NON": .ColorIndex = 38
Case "A FAIRE": .ColorIndex = 36
Case "EN SUSPEND": .ColorIndex = 40
Case "1 ENTRETIEN": .ColorIndex = 8
Case "A FAIRE A SUIVRE": .ColorIndex = 22
Case "RECHERCHE RENSEIGNEMENTS": .ColorIndex = 46
End Select
End With
End If
End Sub
'----------
Salutations
JJ

"Guido" a écrit dans le message de
news:
Bonjour à tous,
je pense n'être pas le premier à poser la question, mais je désire
avoir



une
solution en VBa, puisqu'il est presque impossible d'avoir plus de 3
conditions normalement.

Mon tableau comportent 18 colonnes de "A" à "R" (les lignes sont à peu
près

indéfinies)
Voici les dénominations qui se trouvent dans la Feuil1, qui me
permettent


d'avoir en "C", via une liste de validation dans la feuil "Agenda":

OUI = (code couelur 35)
NON = (code couleur 38)
A FAIRE = (code couleur 36)
EN SUSPEND = (code couleur 40)
1 ENTRETIEN = (code couleur 8)
A FAIRE A SUIVRE = (code couelur 22)
RECHERCHE RENSEIGNEMENTS = (code couleur 46)
Il y a aussi la solution:
"vide" = (en blanc / sans mise en forme colorée)

Exemple:
C3 = EN SUSPEND, la ligne A3:R3 se changent en Brun (code couleur 40)

merci à qui pourrait m'aider à finaliser mon tableau.
Salutations à tous
Guido