XL 2019 couleur et mise en forme conditionnelle (bis)

  • Initiateur de la discussion Initiateur de la discussion bobafric
  • 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 !

bobafric

XLDnaute Occasionnel
Je suis désolé de reprendre le fil ( entretenu par Sylvanu) car je me suis aperçu tardivement qu'il n'était pas complet.
La mise en forme doit être "Règle de mise en surbrillance des cellules avec Texte qui contient" car bien entendu le fichier présenté est un exemple que je dois adapté.
je joins à nouveau le dernier fichier traité.
Merci encore pour votre patience
 

Pièces jointes

Solution
😉 comme dit au dessus : A mettre en début de macro.
VB:
Sub CopyFormatCC()
Dim wSh As Worksheet, Rng As Range
Application.ScreenUpdating = false
Set Rng = ThisWorkbook.Worksheets("MOD").Columns("C")
Rng.Copy
For Each wSh In ThisWorkbook.Worksheets
If wSh.Name <> "MOD" Then
wSh.Columns("A:H").PasteSpecial Paste:=xlPasteFormats
wSh.Cells.ColumnWidth = 20
wSh.Columns("C:C").ColumnWidth = 70
End If
Next wSh
Set Rng = Nothing
End Sub
Impeccale Sylvanu merci pour votre patience et votre science. A bientôt peut-être
BONJOUR Bobafric,
Si j'ai bien compris, il suffit de reprendre les MFC.
Par ex pour John, remplacez la MFC par :
VB:
=NB.SI($C1;"*John*")>0
On obtient alors :
1673276812097.png

Bien sur il faudra relancer la macro pour remettre à jour les MFC.
Par contre, si deux noms sont reconnus, alors seul le dernier l'emportera, par ex :

1673276938002.png
 
BONJOUR Bobafric,
Si j'ai bien compris, il suffit de reprendre les MFC.
Par ex pour John, remplacez la MFC par :
VB:
=NB.SI($C1;"*John*")>0
On obtient alors :
Regarde la pièce jointe 1159900
Bien sur il faudra relancer la macro pour remettre à jour les MFC.
Par contre, si deux noms sont reconnus, alors seul le dernier l'emportera, par ex :

Regarde la pièce jointe 1159902
Content de te revoir Sylvanu
Je ne suis pas dégourdi et je n'arrive pas à appliquer ta solution.
Je joins le fichier avec quelques modifs (exemple avec john) sur la MFC
 

Pièces jointes

Pièces jointes

J'ai écrit :

Donc on remplace :
VB:
=$C1="JOHN"
par
=NB.SI($C1;"*John*")>0
et non pas par
=$C1="NB.SI($C1;"*John*")>0"
Dans la PJ j'ai fait le remplacement, ce que je voulais éviter. 🙂

Excusez-moi pour le retard, j'ai tout compris pour le code.
Mais lorsque je relance la macro toutes les colonnes sont modifiées en largeur.
J'ai essayé de compléter la macro pour remettre les colonnes à la forme initiale, sans résultat.
Je suis nul !!
 
Mais lorsque je relance la macro toutes les colonnes sont modifiées en largeur.
Comme depuis le début puisque c'est votre macro ! et que je n'y ai pas touché. Elle fait :
VB:
wSh.Columns("A:H").PasteSpecial Paste:=xlPasteFormats
Donc recopie les formats, largeur de colonnes comprises.
Vous pouvez ajouter après cette ligne :
Code:
wSh.Cells.ColumnWidth = 20
qui figera la largeur des colonnes.
 
Comme depuis le début puisque c'est votre macro ! et que je n'y ai pas touché. Elle fait :
VB:
wSh.Columns("A:H").PasteSpecial Paste:=xlPasteFormats
Donc recopie les formats, largeur de colonnes comprises.
Vous pouvez ajouter après cette ligne :
Code:
wSh.Cells.ColumnWidth = 20
qui figera la largeur des colonnes.
Merci Sylvanu on avance, le code fonctionne les colonnes ont le même format 20, et il me convient pour toutes les colonnes sauf la colonne C qui doit faire 70
 
Merci Sylvanu on avance, le code fonctionne les colonnes ont le même format 20, et il me convient pour toutes les colonnes sauf la colonne C qui doit faire 70
ça y est Sylvanu j'y suis arrivé, le code complet ci-dessous, pas trop catholique mais ça marche
Option Explicit

Sub CopyFormatCC()
Dim wSh As Worksheet, Rng As Range
Set Rng = ThisWorkbook.Worksheets("MOD").Columns("C")
Rng.Copy
For Each wSh In ThisWorkbook.Worksheets
If wSh.Name <> "MOD" Then
wSh.Columns("A:H").PasteSpecial Paste:=xlPasteFormats
wSh.Cells.ColumnWidth = 20
wSh.Columns("C:C").ColumnWidth = 70
End If
Next wSh
Set Rng = Nothing
End Sub
 
😉 comme dit au dessus : A mettre en début de macro.
VB:
Sub CopyFormatCC()
Dim wSh As Worksheet, Rng As Range
Application.ScreenUpdating = false
Set Rng = ThisWorkbook.Worksheets("MOD").Columns("C")
Rng.Copy
For Each wSh In ThisWorkbook.Worksheets
If wSh.Name <> "MOD" Then
wSh.Columns("A:H").PasteSpecial Paste:=xlPasteFormats
wSh.Cells.ColumnWidth = 20
wSh.Columns("C:C").ColumnWidth = 70
End If
Next wSh
Set Rng = Nothing
End Sub
 
😉 comme dit au dessus : A mettre en début de macro.
VB:
Sub CopyFormatCC()
Dim wSh As Worksheet, Rng As Range
Application.ScreenUpdating = false
Set Rng = ThisWorkbook.Worksheets("MOD").Columns("C")
Rng.Copy
For Each wSh In ThisWorkbook.Worksheets
If wSh.Name <> "MOD" Then
wSh.Columns("A:H").PasteSpecial Paste:=xlPasteFormats
wSh.Cells.ColumnWidth = 20
wSh.Columns("C:C").ColumnWidth = 70
End If
Next wSh
Set Rng = Nothing
End Sub
Impeccale Sylvanu merci pour votre patience et votre science. A bientôt peut-être
 
- 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

Discussions similaires

Retour