2 worksheet change qui agissent sur une seule feuille

fan2foot

XLDnaute Nouveau
Je voudrais faire une mise en forme conditionnelle, qui changerait de couleur tout une colonne en fonction d'une valeur se trouvant sur une autre feuille.

Ce que je souhaiterais c'est lorsqu'un match de ma feuille "résultat L1" est écrit "annulé" dans la colonne C, la colonne en question sur la feuille "pronostic" se teint en rouge s'il y a au moins une valeur dans cette colonne, et le ou les joueurs qui ont pronostiqué sur le match annulé voient leur cellule dans la colonne A grisée.
S'il n'y a pas ou plus de valeur dans cette colonne alors la colonne reprend sa couleur "normal" (blanc ?)
Enfin j'aimerais que lorsque je clic sur " préparer la journée suivante" sur ma feuille "classement" une message box s'ouvre me disant " il y a un ou des pronostic enregistrer sur un match annulé, voulez-vous continuer ? oui ou non" s'il y a une ou des colonnes teinte en rouge sur la feuille "pronostic"

Grace à l'aide de the benoit59, j'ai une première ébauche en VBA ( se trouvant sur la feuille 3) mais elle ne fonctionne pas à 100%, les colonnes se colorisent bien en rouge lorsqu' il y a écrit "Annulé" mais ne redevienne pas "normal" quand je modifie ma feuille "pronostic". Les pseudos qui doivent se griser quand un joueur a pronostiqué un match annulé quant à elles ne se dégrisent jamais.

Pour résoudre le souci j'ai essayé de l'attaquer par un autre angle ( car je ne maîtrise pas bien les codes VBA) en utilisant une MFC, pour la différencier de la VBA, les colonnes sur ma feuille " pronostic" changent de couleur s'il y a écrit "A" dans la colonne c de ma feuille " résultat l1", cette fois les colonnes rouges se colorisent et décolorisent bien quand je modifie ma feuille "pronostic" ou "résultat L1", seulement je n'arrive pas à trouver une formule pour griser les pseudos de joueurs, et puis ma message box sur la feuille "classement" ne s'ouvre pas quand je clic sur le bouton "préparer la prochaine journée", comme si elle ne reconnaissait pas la MFC.
Pouvez-vous m'aidez ?
 

Pièces jointes

  • Fan2Foot .xlsm
    102 KB · Affichages: 31
  • Fan2Foot .xlsm
    102 KB · Affichages: 34
Dernière modification par un modérateur:

fan2foot

XLDnaute Nouveau
Re : MFC ou VBA ?

bonsoir thebenoit59,

Maintenant quand je supprime des valeur dans la colonne en rouge sur ma feuille "pronostic" la case des pseudo en question se dégrise bien, un grand merci pour cette avancée.

Mais si je supprime toutes les valeurs de cette colonne, la colonne en question reste rouge.
J'ai essayer de modifier le code sur la feuille "pronostic", mais c'est un échec ça a tout bloquer, pourtant j'ai utilisé en grande partie ton code sur la feuille "résultat L1".

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'--- Déclaration des variables
Dim llProno As Long
Dim fResul As Worksheet, fProno As Worksheet
Dim rResul As Range
Dim dResul As Object
Dim Cell As Variant
'--- On enregistre les variables
    Set fResul = Feuil3: Set fProno = Feuil2
    Set rResul = fResul.Range("c2:c11")
    llProno = fProno.Cells.Find("*", , , , xlByRows, xlPrevious).Row
'--- On cherche la valeur modifiée
If Not Application.Intersect(Target, rResul) Is Nothing Then
Application.EnableEvents = True
    If Target.Value = "Annulé" And fProno.Cells(Rows.Count, Target.Row).End(xlUp).Row > 1 Then
        fProno.Range(fProno.Cells(1, Target.Row), fProno.Cells(llProno, Target.Row)).Interior.ColorIndex = 3
        If Target.Value <> "Annulé" Then fProno.Range(fProno.Cells(1, Target.Row), fProno.Cells(llProno, Target.Row)).Interior.ColorIndex = xlColorIndexNone

As tu une solution ?
 

fan2foot

XLDnaute Nouveau
Re : MFC ou VBA ?

Bonjour,

J'ai eu une nouvelle idée ce matin, mais c'est encore un échec, la colonne se colorise bien en rouge si il y a des pronostic sur la feuille " pronostic" et si il y a écrit "Annulé" sur la feuille "résultat L1". Si j'efface "Annulé" alors la colonne se décolore bien et les pseudo des joueur en question se dégrise bien, mais si j'efface toutes les valeurs de la colonne en question sur la feuille pronostic, la colonne reste en rouge alors que je souhaiterais qu'elle se dé colorise.
j'ai essayer ce code, dans la feuille pronostic, sans rien modifier d'autres sur les autres feuille par rapport aux fichier que tu m'as envoyer.
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'--- Déclaration des variables
Dim llProno As Long
Dim fResul As Worksheet, fProno As Worksheet
Dim rProno As Range
Dim dResul As Object
Dim Cell As Variant
'--- On enregistre les variables
Set fProno = Feuil2
Set rProno = fProno.Range("A2:A101")
If Not Application.Intersect(Target, Range(Cells(2, 2), Cells(Cells.Find("*", , , , xlByRows, xlPrevious).Row, 11))) Is Nothing Then
    If Target.Interior.ColorIndex = 3 And Target.Value = "" Then Cells(Target.Row, 1).Interior.ColorIndex = xlColorIndexNone
    If Target.Interior.ColorIndex = 3 And Target.Value <> "" Then Cells(Target.Row, 1).Interior.ColorIndex = 48
    If rProno.Value = "" Then rProno = xlColorIndexNone
End If
End Sub
 

fan2foot

XLDnaute Nouveau
Re : MFC ou VBA ?

Bonsoir,

Je suis toujours en "panne sèche" devant se problème. On dirait que les 2 worksheet change présent sur la feuille "pronostic" et sur la feuille " résultat l1" ne se coordonne pas.
Grace à l'aide au dessus de Thebenoit59 la solution à mon problème a bien avancé mais n'est pas encore résolu.
Pour l'instant si j'écrit "Annulé" dans un des match présent dans la colonne C de ma feuille "resultat l1", la colonne du match en question sur ma feuille "pronostic" se colorise bien en rouge si il y a des pronostic enregistrer, et la cellule des pseudo des joueurs en question qui ont pronostiquer sur ce match annulé est bien grisé. Si j'efface le terme "Annulé" sur ma feuille "résultat l1" alors les cases se décolore bien.
Par contre là où j'ai un problème, c'est si je modifie ma feuille " pronostic" et que j'efface tout les pronostic sur le match dit "Annulé" alors la colonne en question de se décolore pas, alors qu'il n'y a pas de match pronostiqué. Les pseudo eux se dégrise bien.
Et le problème se pose aussi dans l'autre sens, si il y a écrit "Annulé" dans la colonne C de la feuille "résultat L1" et qu'il n' y a pas de pronostic dans la colonne en question sur la feuille "pronostic" alors la colonne ne se colorise pas en rouge ( jusqu'ici c'est normal) mais si je rajoute un pronostic la colonne se colorise toujours pas, pour quelle se colorise il faut que je retape "Annule" dans ma feuille résultat L1"
Du coup je me demande si il ne faudrait pas mieux utilisé la fonction workbook sheetchange ou si il y a tout simplement une erreur dans le code que j'utilise.
C'est pourquoi je sollicite votre aide.
 

fan2foot

XLDnaute Nouveau
Re : MFC ou VBA ?

bonsoir,

J'avance vraiment tout doucement sur le problème.
En mettant ce code dans la feuille2 "pronostic" ma colonne arrive a se colorer et se décoloré en modifiant seulement cette feuille.
Code:
Dim fResul As Worksheet
Set fResul = Feuil3
If Not Application.Intersect(Target, Range("b2:b100")) Is Nothing Then
    If fResul.Range("c2").Value = "Annulé" And Application.WorksheetFunction.CountA(Range("b2:b100") >= 1 Then
        Range("b2:b100").Row.Interior.ColorIndex = 3
       Else: Range("b2:b100").Row.Interior.ColorIndex = xlColorIndexNone
End If
End If

seulement par rapport a la feuil3 "résultat l1" je n'ai pas réussi a mettre la partie "End(xlUp).Row " dans le code qui autorise la colorisation jusqu' à la dernière ligne non vide. De plus le nom du joueur ne se grise pas dans la ligne2 et ceux meme si il a enregistrer un pronostic sur un match annulé.

Pour vous donnez une idée je joint un fichier.
Sur la feuille "pronostic" si je supprime tous les pronostic de la colonne A alors la colonne se décolorise ( c'est ce que je souhaite faire) .
Sur la colonne f même si je supprime tous les pronostic, la colonne ne se décolorise pas, pour quelle se dé colorise il faut que j'agisse sur la feuille "resultat l1" dans la colonne résultat ( c'est mon problème).
Cette différence se fait par le code que j'ai mis dans la feuil2 "pronostic", mais le code "d'origine se trouve sur la feuil3 "résultat l1"

Pour rajouter une couche a mon problème, je dois faire la même chose pour la colonne c,d,e,f,g,h,i,j et k, sa va faire beaucoup de codage.
Je sais qu'il existe la méthode de "boucle" mais je ne maîtrise pas cette méthode.
Si une âme charitable pouvait me venir en aide :rolleyes:
 

Pièces jointes

  • fan2foot.xlsm
    126 KB · Affichages: 23
  • fan2foot.xlsm
    126 KB · Affichages: 21
Dernière modification par un modérateur:

fan2foot

XLDnaute Nouveau
Re : 2 worksheet change qui agissent sur une seule feuille

bonsoir,

J'essaie de trouver la formule qui me permettrai de moidifier la couleur de ma colonne de b2 jusqu'à la dernière ligne non vide.
J'ai essayer avec cette formule
Code:
Range("b2" & Rows.Count).End(xlUp).Row.Interior.ColorIndex = 3

mais il me met qualificateur incorrect en surlignant le ".row" en jaune
Savez vous ce qui cloche ?
 
Dernière modification par un modérateur:

Discussions similaires

Réponses
20
Affichages
1 K

Statistiques des forums

Discussions
311 720
Messages
2 081 923
Membres
101 840
dernier inscrit
SamynoT