Macro remplissage couleur dans plusieurs cellules

  • Initiateur de la discussion Initiateur de la discussion Sally
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Sally

Guest
Bonjour,

J'aurais besoin d'aide pour mon planning, en fait j'ai créer une macro pour remplir une cellule de couleur selon la saisie, mais cette macro ne fonctionne que pour le première cellule dans ma feuille "été 2003".

Je n'arrive pas à la faire exécuter pour tout la ligne.


Merci pour votre aide.

Sally
 

Pièces jointes

Sally, dans ton fichier, il n'y a aucune macro autre que celles permettant de sélectionner telle ou telle feuille. D'autre part, tes feuilles sont protégées par un mot de passe, ce qui ne facilite pas la recherche d'une solution. Aucune possibilité de voir ce que tu veux faire exactement dans ces conditions...
 
Je vous renvoie le fichier, c'est bizarre que vous ne trouvez pas le code dans vb editor.

La cellule qui fonctionne est dans la feuille "été 2003" F6.

Avez-vous la form de sélection des feuille au démarrage du fichier?

En espérant que cela fonctionne.....
 

Pièces jointes

  • CP.zip
    CP.zip
    27.1 KB · Affichages: 117
  • CP.zip
    CP.zip
    27.1 KB · Affichages: 113
  • CP.zip
    CP.zip
    27.1 KB · Affichages: 117
normal que ça ne fonctionne que sur la première ligne, et même sur la première colonne, puisque ta macro événementielle ne réagit qu'au changement de la cellule F6. Comme je ne savais pas si tu voulais que ça réagisse à la première ligne de toutes les colonnes ou à toutes les lignes de toutes les colonnes, je t'ai mis 2 versions dans Worksheet_Change. Ainsi :

If Union(Target, Range("F6:GF6")).Address <> "$F$6:$GF$6" Then Exit Sub

ne réagira qu'au changement de la première ligne

'If Union(Target, Range("F6:GF46")).Address <> "$F$6:$GF$46" Then Exit
réagira au changement de toutes les lignes.
Si tu modifies la taille de ton tableau, n'oublie pas d'adapter les plages correspondantes dans cette macro.


Sub Couleur2(Target As Range)
With Target
.Offset(1, 0).Interior.ColorIndex = 0
.Offset(2, 0).Interior.ColorIndex = 0

If .Value = "0,5" Then
If MsgBox("Voulez-vous sélectionner le matin?", vbYesNo) = vbYes Then
.Offset(1, 0).Interior.ColorIndex = 3
Else
.Offset(2, 0).Interior.ColorIndex = 3
End If
Else 'valeur = 1
.Offset(1, 0).Interior.ColorIndex = 3
.Offset(2, 0).Interior.ColorIndex = 3
End If
End With
End Sub


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Union(Target, Range("F6:GF6")).Address <> "$F$6:$GF$6" Then Exit Sub
'pour que ça fonctionne sur toutes les lignes
'If Union(Target, Range("F6:GF46")).Address <> "$F$6:$GF$46" Then Exit Sub

If Target.Value = "0,5" Then
Couleur2 Target
ElseIf Target.Value = "1" Then
Couleur2 Target
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
58
Retour