Selectionner les Cellules de couleur par mise en forme condi pour les clear
Résolu
DidsCraft
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
DidsCraft Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
DidsCraft Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je réalise un planning d'équipe en 3x8 et j’essaie de l'automatiser au maximum.
Sur la feuille "Janv" j'ai placé un bouton pour Reset les valeurs et le format des cellules pour entamer la nouvelle année. Pour cela j'ai réalisé ce code est pas de souci.
Le problème que j'ai c'est que je souhaite que pour la colonne du Chef qui est toujours de journée, la lettre "J" s'affiche suite au Reset (chose faite à la ligne 19).
Seulement je souhaite que les cellules correspondant aux week-end reste vide. Les cellules des samedi/dimanche étant de couleur différentes je me suis dit pas de souci, je cherche les cellule de cette couleur et je les clear.
Pour cela j'ai créé ce code la :
Alors ça fonctionne bien sur les cases dont le fond est de la bonne couleur (couleur mise manuellement pour tester), cependant ça ne fonctionne pas dans mon cas car mes week-end sont colorisé par mise en forme conditionnelle.
J'ai l'impression que Excel applique un calque sur la cellule pour appliquer une couleur en MiseEnFC et donc la considère transparente malgré un visuel colorisé.
J’espère avoir été suffisamment claire.
Je verrais pour mettre mon fichier si besoin (pas mal d'info personnel à retirer avant)
Merci
Je réalise un planning d'équipe en 3x8 et j’essaie de l'automatiser au maximum.
Sur la feuille "Janv" j'ai placé un bouton pour Reset les valeurs et le format des cellules pour entamer la nouvelle année. Pour cela j'ai réalisé ce code est pas de souci.
Sub Reset() 'Reset de tout le classeur Dim Classeur As Worksheet, Reset As Integer Reset = MsgBox("Si vous n'avez pas enregistrer votre fichier pour la nouvelle année," & Chr(10) & "toutes les données de l'année précédente seront perdu." & Chr(10) & "" & Chr(10) & "Voulez vous continuer ?", vbYesNo) If Reset = vbYes Then Sheets("Janv").Select 'premier onglet Application.ScreenUpdating = False For Each Classeur In ActiveWorkbook.Worksheets If Classeur.Name <> "Base" Then Classeur.Activate Range("C8:X38").Select Selection.ClearContents With Selection.Interior 'Suppression des couleurs de fond .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With Range("C8:C38").Value = "J" Range("C8:C38").Select With Selection.Interior 'couleurs de fond colonne Monique .Color = 15783870 End With Range("A1").Select 'selec A1 pour desselec la suppr End If Next Classeur Sheets("Janv").Select 'Retour au mois Janv Else MsgBox "Enregistrez votre fichier avec le nom de la nouvelle année, puis revenez supprimer toutes les données." End If End Sub
Le problème que j'ai c'est que je souhaite que pour la colonne du Chef qui est toujours de journée, la lettre "J" s'affiche suite au Reset (chose faite à la ligne 19).
Seulement je souhaite que les cellules correspondant aux week-end reste vide. Les cellules des samedi/dimanche étant de couleur différentes je me suis dit pas de souci, je cherche les cellule de cette couleur et je les clear.
Pour cela j'ai créé ce code la :
Sub TestColor() Dim plage As Range, cellule As Range Dim couleur As Long couleur = RGB(250, 191, 143) 'couleur Set plage = Range("C8:C38") For Each cellule In plage.Cells ' Analyse de chaque cellule If cellule.Interior.Color = couleur Then ' si elle est de la bonne couleur ... cellule.ClearContents ' ... remplacer par aucun remplissage End If Next cellule End Sub
Alors ça fonctionne bien sur les cases dont le fond est de la bonne couleur (couleur mise manuellement pour tester), cependant ça ne fonctionne pas dans mon cas car mes week-end sont colorisé par mise en forme conditionnelle.
J'ai l'impression que Excel applique un calque sur la cellule pour appliquer une couleur en MiseEnFC et donc la considère transparente malgré un visuel colorisé.
J’espère avoir été suffisamment claire.
Je verrais pour mettre mon fichier si besoin (pas mal d'info personnel à retirer avant)
Merci
Configuration: Windows / Firefox 80.0
A voir également:
- Selectionner les Cellules de couleur par mise en forme condi pour les clear
- Mise en forme conditionnelle excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise en forme tableau croisé dynamique - Guide
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : - Guide
3 réponses
bonjour
J'ai l'impression que Excel applique un calque sur la cellule pour appliquer une couleur en MiseEnFC et donc la considère transparente malgré un visuel colorisé.
Il faut gérer par la valeur qui a déclenché la MFC et non par la couleur résultante
J'ai l'impression que Excel applique un calque sur la cellule pour appliquer une couleur en MiseEnFC et donc la considère transparente malgré un visuel colorisé.
Il faut gérer par la valeur qui a déclenché la MFC et non par la couleur résultante
Bonjour,
Quelle est la formule de ta MFC ?
au besoin:
Quelle est la formule de ta MFC ?
au besoin:
Mettre le classeur sans données confidentielles en pièce jointe sur
https://mon-partage.fr
Dans lien de téléchargement
faire un clic droit- copier l’adresse du lien et le coller dans votre message en cours sur ccm
C'est bon.
J'ai d'abord tourné un peu en rond mais à force de chercher dans la direction du test de ma MFC, comme tu me l'as conseillé, j'ai trouvé la solution.
Je le met au cas ou ça peut aider certaines personnes.
Pour ceux qui ont plus de mal avec la lecture de code je m'explique.
J'ai finalement fait une boucle For pour les lignes de mes jours (de 8 à 38=31jours), puis j'ai cherché si dans ses cellules il y avait des jours supérieure à 5 (semaine commençant par un lundi). Pour finir, si mon "If" est correct je ne met aucune valeur dans la cellule de la colonne de la ligne testée.
Je suis parti dans ce sens là par rapport à mon idée de base mais finalement je vais faire l'inverse et inscrire la lettre J dans les jours qui sont inférieur à 6. C'est plus logique que de tout remplir puis supprimer.
Encore merci
J'ai d'abord tourné un peu en rond mais à force de chercher dans la direction du test de ma MFC, comme tu me l'as conseillé, j'ai trouvé la solution.
Je le met au cas ou ça peut aider certaines personnes.
Sub DateTest() Dim NumLine As Long For NumLine = 8 To 38 If Weekday(Cells(NumLine, 1).Value, vbMonday) > 5 Then Cells(NumLine, 3).Value = "" End If Next End Sub
Pour ceux qui ont plus de mal avec la lecture de code je m'explique.
J'ai finalement fait une boucle For pour les lignes de mes jours (de 8 à 38=31jours), puis j'ai cherché si dans ses cellules il y avait des jours supérieure à 5 (semaine commençant par un lundi). Pour finir, si mon "If" est correct je ne met aucune valeur dans la cellule de la colonne de la ligne testée.
Je suis parti dans ce sens là par rapport à mon idée de base mais finalement je vais faire l'inverse et inscrire la lettre J dans les jours qui sont inférieur à 6. C'est plus logique que de tout remplir puis supprimer.
Encore merci
C’est dommage j’espérais que ce soit possible car autant le rechercheV en formule (qui est dans ma MFC) pas de souci mais transcrire une rechercheV en vba faut que je me creuse la tête ^^.
Je fais mes recherches et test et je reviens vers vous si j’ai la solution.
Au cas où quelqu’un a des exemples de code équivalent à une rechercheV je suis preneur ;)
En tout cas merci