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

Pb avec feuilles classeur

10 réponses
Avatar
Michel69
Bonjour à toutes et à tous,
Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer les
cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction de leur
contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
1) Quel serait le bout de code (et ou le placer ?) qui passerait en revue
toutes mes feuilles et qui pourrait effectuer ces mises en forme.
2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment colorer en
même temps la colonne correspondante si la cellule 1 contient la lettre D.
Merci pour vos efforts
Michel69

10 réponses

Avatar
Daniel.C
Bonjour.
1. Attache le code suivant à ton bouton (à modifier suivant les lettres à
colorier :

Private Sub CommandButton1_Click()
Dim sh As Worksheet, c As Range, ResAdr As String
For Each sh In Sheets
Set c = sh.[C3:AG194].Find("*")
If Not c Is Nothing Then
ResAdr = c.Address
Do
Select Case c
Case "M": c.Interior.ColorIndex = 3
Case "S": c.Interior.ColorIndex = 6
Case "R": c.Interior.ColorIndex = 9
End Select
Set c = sh.[C3:AG194].FindNext(c)
Loop Until c Is Nothing Or c.Address = ResAdr
End If
Next sh
End Sub

2. Sélectionne les colonnes à colorier. Clique sur Format, Mise en forme
conditionnelle;
"la formule est", dans la fenêtre formule, mets : =C$1="D"
Choisis le format de ton choix et appuie sur Entrée.
Cordialement.
Daniel
"Michel69" a écrit dans le message de
news:
Bonjour à toutes et à tous,
Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer les
cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction de
leur
contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
1) Quel serait le bout de code (et ou le placer ?) qui passerait en revue
toutes mes feuilles et qui pourrait effectuer ces mises en forme.
2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment colorer
en
même temps la colonne correspondante si la cellule 1 contient la lettre D.
Merci pour vos efforts
Michel69


Avatar
Daniel.C
Pour plus de sureté, remplace :
Set c = sh.[C3:AG194].Find("*")
par :
Set c = sh.[C3:AG194].Find("*", , , xlWhole)
Daniel
"Michel69" a écrit dans le message de
news:
Bonjour à toutes et à tous,
Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer les
cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction de
leur
contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
1) Quel serait le bout de code (et ou le placer ?) qui passerait en revue
toutes mes feuilles et qui pourrait effectuer ces mises en forme.
2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment colorer
en
même temps la colonne correspondante si la cellule 1 contient la lettre D.
Merci pour vos efforts
Michel69


Avatar
Michel69
Bonjour et encore merci Daniel.C
Ton code fonctionne très bien. En plus j'ai rajouté une c.font.colorindex
par case pour adapter la police à la couleur de fond. Il me traite toutes mes
feuilles.
y a t-il une limite dans les "Case" car au bout du dixième le code plante
"Impossibilité de définir la colorindex de la classe font". c'est la couleur
2 (blanc) tu vois une explication ?
Merci
Michel

"Daniel.C" a écrit :

Pour plus de sureté, remplace :
Set c = sh.[C3:AG194].Find("*")
par :
Set c = sh.[C3:AG194].Find("*", , , xlWhole)
Daniel
"Michel69" a écrit dans le message de
news:
> Bonjour à toutes et à tous,
> Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
> 09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer les
> cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction de
> leur
> contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
> 1) Quel serait le bout de code (et ou le placer ?) qui passerait en revue
> toutes mes feuilles et qui pourrait effectuer ces mises en forme.
> 2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment colorer
> en
> même temps la colonne correspondante si la cellule 1 contient la lettre D.
> Merci pour vos efforts
> Michel69





Avatar
Michel69
Daniel.C,
Encore une petite question, mon classeur possède 25 feuilles, comment ton
code selectionne-t-il que les feuilles "Jan 09 à Déc 09" ? Merci
Michel69

"Michel69" a écrit :

Bonjour et encore merci Daniel.C
Ton code fonctionne très bien. En plus j'ai rajouté une c.font.colorindex
par case pour adapter la police à la couleur de fond. Il me traite toutes mes
feuilles.
y a t-il une limite dans les "Case" car au bout du dixième le code plante
"Impossibilité de définir la colorindex de la classe font". c'est la couleur
2 (blanc) tu vois une explication ?
Merci
Michel

"Daniel.C" a écrit :

> Pour plus de sureté, remplace :
> Set c = sh.[C3:AG194].Find("*")
> par :
> Set c = sh.[C3:AG194].Find("*", , , xlWhole)
> Daniel
> "Michel69" a écrit dans le message de
> news:
> > Bonjour à toutes et à tous,
> > Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
> > 09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer les
> > cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction de
> > leur
> > contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
> > 1) Quel serait le bout de code (et ou le placer ?) qui passerait en revue
> > toutes mes feuilles et qui pourrait effectuer ces mises en forme.
> > 2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment colorer
> > en
> > même temps la colonne correspondante si la cellule 1 contient la lettre D.
> > Merci pour vos efforts
> > Michel69
>
>
>


Avatar
Daniel.C
A priori, je ne connais pas de limite. Le problème semble plutôt avec
colorindex. Le numéro choisi existe-il ? Poste ton code.
Daniel
"Michel69" a écrit dans le message de
news:
Bonjour et encore merci Daniel.C
Ton code fonctionne très bien. En plus j'ai rajouté une c.font.colorindex
par case pour adapter la police à la couleur de fond. Il me traite toutes
mes
feuilles.
y a t-il une limite dans les "Case" car au bout du dixième le code plante
"Impossibilité de définir la colorindex de la classe font". c'est la
couleur
2 (blanc) tu vois une explication ?
Merci
Michel

"Daniel.C" a écrit :

Pour plus de sureté, remplace :
Set c = sh.[C3:AG194].Find("*")
par :
Set c = sh.[C3:AG194].Find("*", , , xlWhole)
Daniel
"Michel69" a écrit dans le message
de
news:
> Bonjour à toutes et à tous,
> Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
> 09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer les
> cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction de
> leur
> contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
> 1) Quel serait le bout de code (et ou le placer ?) qui passerait en
> revue
> toutes mes feuilles et qui pourrait effectuer ces mises en forme.
> 2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment
> colorer
> en
> même temps la colonne correspondante si la cellule 1 contient la lettre
> D.
> Merci pour vos efforts
> Michel69







Avatar
Daniel.C
Si ce sont les 12 premières, tu peux utiliser :
for i=1 to 12
set sh=sheets(i)
...
next i
Si seules ces 12 feuilles se terminent par " 09" :
For Each sh In Sheets
if right(sh.name,3)=" 09" then
...
end if
Next sh
Sinon :
Mets dans la variable les 12 feuilles :

an = Array("Jan 09", "Fev 09", etc)
For Each sh In Sheets
If IsNumeric(Application.Match(Var, an, 0)) Then
...
end if
next sh
Daniel
"Michel69" a écrit dans le message de
news:
Daniel.C,
Encore une petite question, mon classeur possède 25 feuilles, comment ton
code selectionne-t-il que les feuilles "Jan 09 à Déc 09" ? Merci
Michel69

"Michel69" a écrit :

Bonjour et encore merci Daniel.C
Ton code fonctionne très bien. En plus j'ai rajouté une c.font.colorindex
par case pour adapter la police à la couleur de fond. Il me traite toutes
mes
feuilles.
y a t-il une limite dans les "Case" car au bout du dixième le code plante
"Impossibilité de définir la colorindex de la classe font". c'est la
couleur
2 (blanc) tu vois une explication ?
Merci
Michel

"Daniel.C" a écrit :

> Pour plus de sureté, remplace :
> Set c = sh.[C3:AG194].Find("*")
> par :
> Set c = sh.[C3:AG194].Find("*", , , xlWhole)
> Daniel
> "Michel69" a écrit dans le message
> de
> news:
> > Bonjour à toutes et à tous,
> > Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
> > 09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer
> > les
> > cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction
> > de
> > leur
> > contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
> > 1) Quel serait le bout de code (et ou le placer ?) qui passerait en
> > revue
> > toutes mes feuilles et qui pourrait effectuer ces mises en forme.
> > 2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment
> > colorer
> > en
> > même temps la colonne correspondante si la cellule 1 contient la
> > lettre D.
> > Merci pour vos efforts
> > Michel69
>
>
>




Avatar
Michel69
Daniel.C
Voici le code :
Sub Bouton18_QuandClic()
Dim sh As Worksheet, c As Range, ResAdr As String
MsgBox ("Celà va prendre quelques minutes, Veuillez patienter, Merci")
For Each sh In Sheets
Set c = sh.[C3:AG194].Find("*", , , xlWhole)
If Not c Is Nothing Then
ResAdr = c.Address
Do
Select Case c

Case "M": c.Font.ColorIndex = 1 'Police en Noir
Case "M": c.Interior.ColorIndex = 38 'Fond Rose Saumon
Case "S": c.Font.ColorIndex = 1 'Police en Noir
Case "S": c.Interior.ColorIndex = 37 'Fond Bleu moyen
Case "J": c.Font.ColorIndex = 1 'Police en Noir
Case "J": c.Interior.ColorIndex = 15 'Fond Gris 25%
Case "MAL": c.Font.ColorIndex = 2 'Police en Blanc
Case "MAL": c.Interior.ColorIndex = 46 'Fond Orange
Case "C": c.Font.ColorIndex = 1 'Police en Noir
Case "C": c.Interior.ColorIndex = 36 'Fond Jaune clair
Case "AT": c.Font.ColorIndex = 2 '<<<<<<<<< PLANTAGE A CE NIVEAU
Case "AT": c.Interior.ColorIndex = 46
Case "FC": c.Font.ColorIndex = 1
Case "FC": c.Interior.ColorIndex = 15
Case "F": c.Font.ColorIndex = 1
Case "F": c.Interior.ColorIndex = 36
Case "R": c.Font.ColorIndex = 1
Case "R": c.Interior.ColorIndex = 36
Case "CEX": c.Font.ColorIndex = 1
Case "CEX": c.Interior.ColorIndex = 36
Case "RTT": c.Font.ColorIndex = 1
Case "RTT": c.Interior.ColorIndex = 36
Case "ABS": c.Font.ColorIndex = 2
Case "ABS": c.Interior.ColorIndex = 3

End Select
Set c = sh.[C3:AG194].FindNext(c)
Loop Until c Is Nothing Or c.Address = ResAdr
End If
Next sh

End Sub

"Daniel.C" a écrit :

A priori, je ne connais pas de limite. Le problème semble plutôt avec
colorindex. Le numéro choisi existe-il ? Poste ton code.
Daniel
"Michel69" a écrit dans le message de
news:
> Bonjour et encore merci Daniel.C
> Ton code fonctionne très bien. En plus j'ai rajouté une c.font.colorindex
> par case pour adapter la police à la couleur de fond. Il me traite toutes
> mes
> feuilles.
> y a t-il une limite dans les "Case" car au bout du dixième le code plante
> "Impossibilité de définir la colorindex de la classe font". c'est la
> couleur
> 2 (blanc) tu vois une explication ?
> Merci
> Michel
>
> "Daniel.C" a écrit :
>
>> Pour plus de sureté, remplace :
>> Set c = sh.[C3:AG194].Find("*")
>> par :
>> Set c = sh.[C3:AG194].Find("*", , , xlWhole)
>> Daniel
>> "Michel69" a écrit dans le message
>> de
>> news:
>> > Bonjour à toutes et à tous,
>> > Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
>> > 09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer les
>> > cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction de
>> > leur
>> > contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
>> > 1) Quel serait le bout de code (et ou le placer ?) qui passerait en
>> > revue
>> > toutes mes feuilles et qui pourrait effectuer ces mises en forme.
>> > 2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment
>> > colorer
>> > en
>> > même temps la colonne correspondante si la cellule 1 contient la lettre
>> > D.
>> > Merci pour vos efforts
>> > Michel69
>>
>>
>>





Avatar
Michel69
Daniel.C
Voici le code :
Sub Bouton18_QuandClic()
Dim sh As Worksheet, c As Range, ResAdr As String
MsgBox ("Celà va prendre quelques minutes, Veuillez patienter, Merci")
For Each sh In Sheets
Set c = sh.[C3:AG194].Find("*", , , xlWhole)
If Not c Is Nothing Then
ResAdr = c.Address
Do
Select Case c

Case "M": c.Font.ColorIndex = 1 'Police en Noir
Case "M": c.Interior.ColorIndex = 38 'Fond Rose Saumon
Case "S": c.Font.ColorIndex = 1 'Police en Noir
Case "S": c.Interior.ColorIndex = 37 'Fond Bleu moyen
Case "J": c.Font.ColorIndex = 1 'Police en Noir
Case "J": c.Interior.ColorIndex = 15 'Fond Gris 25%
Case "MAL": c.Font.ColorIndex = 2 'Police en Blanc
Case "MAL": c.Interior.ColorIndex = 46 'Fond Orange
Case "C": c.Font.ColorIndex = 1 'Police en Noir
Case "C": c.Interior.ColorIndex = 36 'Fond Jaune clair
Case "AT": c.Font.ColorIndex = 2 '<<<<<<<<< PLANTAGE A CE NIVEAU
Case "AT": c.Interior.ColorIndex = 46
Case "FC": c.Font.ColorIndex = 1
Case "FC": c.Interior.ColorIndex = 15
Case "F": c.Font.ColorIndex = 1
Case "F": c.Interior.ColorIndex = 36
Case "R": c.Font.ColorIndex = 1
Case "R": c.Interior.ColorIndex = 36
Case "CEX": c.Font.ColorIndex = 1
Case "CEX": c.Interior.ColorIndex = 36
Case "RTT": c.Font.ColorIndex = 1
Case "RTT": c.Interior.ColorIndex = 36
Case "ABS": c.Font.ColorIndex = 2
Case "ABS": c.Interior.ColorIndex = 3

End Select
Set c = sh.[C3:AG194].FindNext(c)
Loop Until c Is Nothing Or c.Address = ResAdr
End If
Next sh

End Sub

"Daniel.C" a écrit :

A priori, je ne connais pas de limite. Le problème semble plutôt avec
colorindex. Le numéro choisi existe-il ? Poste ton code.
Daniel
"Michel69" a écrit dans le message de
news:
> Bonjour et encore merci Daniel.C
> Ton code fonctionne très bien. En plus j'ai rajouté une c.font.colorindex
> par case pour adapter la police à la couleur de fond. Il me traite toutes
> mes
> feuilles.
> y a t-il une limite dans les "Case" car au bout du dixième le code plante
> "Impossibilité de définir la colorindex de la classe font". c'est la
> couleur
> 2 (blanc) tu vois une explication ?
> Merci
> Michel
>
> "Daniel.C" a écrit :
>
>> Pour plus de sureté, remplace :
>> Set c = sh.[C3:AG194].Find("*")
>> par :
>> Set c = sh.[C3:AG194].Find("*", , , xlWhole)
>> Daniel
>> "Michel69" a écrit dans le message
>> de
>> news:
>> > Bonjour à toutes et à tous,
>> > Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
>> > 09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer les
>> > cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction de
>> > leur
>> > contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
>> > 1) Quel serait le bout de code (et ou le placer ?) qui passerait en
>> > revue
>> > toutes mes feuilles et qui pourrait effectuer ces mises en forme.
>> > 2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment
>> > colorer
>> > en
>> > même temps la colonne correspondante si la cellule 1 contient la lettre
>> > D.
>> > Merci pour vos efforts
>> > Michel69
>>
>>
>>





Avatar
Daniel.C
Je n'ai pas de message, mais bon, je tourne avec XL2007.
Essaie le code suivant (pas besoin de répéter Case.., à chaque fois, tu peux
mettre autant d'instructions que tu veux :

Dim sh As Worksheet, c As Range, ResAdr As String
MsgBox ("Celà va prendre quelques minutes, Veuillez patienter, Merci")
For Each sh In Sheets
Set c = sh.[C3:AG194].Find("*", , , xlWhole)
If Not c Is Nothing Then
ResAdr = c.Address
Do
Select Case c

Case "M": c.Font.ColorIndex = 1 'Police en Noir
c.Interior.ColorIndex = 38 'Fond Rose Saumon
Case "S": c.Font.ColorIndex = 1 'Police en Noir
c.Interior.ColorIndex = 37 'Fond Bleu moyen
Case "J": c.Font.ColorIndex = 1 'Police en Noir
c.Interior.ColorIndex = 15 'Fond Gris 25%
Case "MAL": c.Font.ColorIndex = 2 'Police en Blanc
c.Interior.ColorIndex = 46 'Fond Orange
Case "C": c.Font.ColorIndex = 2 'Police en Noir
c.Interior.ColorIndex = 36 'Fond Jaune clair
Case "AT": c.Font.ColorIndex = 2
c.Interior.ColorIndex = 46
Case "FC": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 15
Case "F": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 36
Case "R": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 36
Case "CEX": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 36
Case "RTT": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 36
Case "ABS": c.Font.ColorIndex = 2
c.Interior.ColorIndex = 3

End Select
Set c = sh.[C3:AG194].FindNext(c)
Loop Until c Is Nothing Or c.Address = ResAdr
End If
Next sh

Daniel

"Michel69" a écrit dans le message de
news:
Daniel.C
Voici le code :
Sub Bouton18_QuandClic()
Dim sh As Worksheet, c As Range, ResAdr As String
MsgBox ("Celà va prendre quelques minutes, Veuillez patienter, Merci")
For Each sh In Sheets
Set c = sh.[C3:AG194].Find("*", , , xlWhole)
If Not c Is Nothing Then
ResAdr = c.Address
Do
Select Case c

Case "M": c.Font.ColorIndex = 1 'Police en Noir
Case "M": c.Interior.ColorIndex = 38 'Fond Rose Saumon
Case "S": c.Font.ColorIndex = 1 'Police en Noir
Case "S": c.Interior.ColorIndex = 37 'Fond Bleu moyen
Case "J": c.Font.ColorIndex = 1 'Police en Noir
Case "J": c.Interior.ColorIndex = 15 'Fond Gris 25%
Case "MAL": c.Font.ColorIndex = 2 'Police en Blanc
Case "MAL": c.Interior.ColorIndex = 46 'Fond Orange
Case "C": c.Font.ColorIndex = 1 'Police en Noir
Case "C": c.Interior.ColorIndex = 36 'Fond Jaune clair
Case "AT": c.Font.ColorIndex = 2 '<<<<<<<<< PLANTAGE A CE NIVEAU
Case "AT": c.Interior.ColorIndex = 46
Case "FC": c.Font.ColorIndex = 1
Case "FC": c.Interior.ColorIndex = 15
Case "F": c.Font.ColorIndex = 1
Case "F": c.Interior.ColorIndex = 36
Case "R": c.Font.ColorIndex = 1
Case "R": c.Interior.ColorIndex = 36
Case "CEX": c.Font.ColorIndex = 1
Case "CEX": c.Interior.ColorIndex = 36
Case "RTT": c.Font.ColorIndex = 1
Case "RTT": c.Interior.ColorIndex = 36
Case "ABS": c.Font.ColorIndex = 2
Case "ABS": c.Interior.ColorIndex = 3

End Select
Set c = sh.[C3:AG194].FindNext(c)
Loop Until c Is Nothing Or c.Address = ResAdr
End If
Next sh

End Sub

"Daniel.C" a écrit :

A priori, je ne connais pas de limite. Le problème semble plutôt avec
colorindex. Le numéro choisi existe-il ? Poste ton code.
Daniel
"Michel69" a écrit dans le message
de
news:
> Bonjour et encore merci Daniel.C
> Ton code fonctionne très bien. En plus j'ai rajouté une
> c.font.colorindex
> par case pour adapter la police à la couleur de fond. Il me traite
> toutes
> mes
> feuilles.
> y a t-il une limite dans les "Case" car au bout du dixième le code
> plante
> "Impossibilité de définir la colorindex de la classe font". c'est la
> couleur
> 2 (blanc) tu vois une explication ?
> Merci
> Michel
>
> "Daniel.C" a écrit :
>
>> Pour plus de sureté, remplace :
>> Set c = sh.[C3:AG194].Find("*")
>> par :
>> Set c = sh.[C3:AG194].Find("*", , , xlWhole)
>> Daniel
>> "Michel69" a écrit dans le
>> message
>> de
>> news:
>> > Bonjour à toutes et à tous,
>> > Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
>> > 09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer
>> > les
>> > cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction
>> > de
>> > leur
>> > contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
>> > 1) Quel serait le bout de code (et ou le placer ?) qui passerait en
>> > revue
>> > toutes mes feuilles et qui pourrait effectuer ces mises en forme.
>> > 2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment
>> > colorer
>> > en
>> > même temps la colonne correspondante si la cellule 1 contient la
>> > lettre
>> > D.
>> > Merci pour vos efforts
>> > Michel69
>>
>>
>>







Avatar
Michel69
Merci encore Daniel.C
Celà fonctionne correctement
Je t'avais répondu mais ou c'est parti ?
Encore Merci
Michel69

"Daniel.C" a écrit :

Je n'ai pas de message, mais bon, je tourne avec XL2007.
Essaie le code suivant (pas besoin de répéter Case.., à chaque fois, tu peux
mettre autant d'instructions que tu veux :

Dim sh As Worksheet, c As Range, ResAdr As String
MsgBox ("Celà va prendre quelques minutes, Veuillez patienter, Merci")
For Each sh In Sheets
Set c = sh.[C3:AG194].Find("*", , , xlWhole)
If Not c Is Nothing Then
ResAdr = c.Address
Do
Select Case c

Case "M": c.Font.ColorIndex = 1 'Police en Noir
c.Interior.ColorIndex = 38 'Fond Rose Saumon
Case "S": c.Font.ColorIndex = 1 'Police en Noir
c.Interior.ColorIndex = 37 'Fond Bleu moyen
Case "J": c.Font.ColorIndex = 1 'Police en Noir
c.Interior.ColorIndex = 15 'Fond Gris 25%
Case "MAL": c.Font.ColorIndex = 2 'Police en Blanc
c.Interior.ColorIndex = 46 'Fond Orange
Case "C": c.Font.ColorIndex = 2 'Police en Noir
c.Interior.ColorIndex = 36 'Fond Jaune clair
Case "AT": c.Font.ColorIndex = 2
c.Interior.ColorIndex = 46
Case "FC": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 15
Case "F": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 36
Case "R": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 36
Case "CEX": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 36
Case "RTT": c.Font.ColorIndex = 1
c.Interior.ColorIndex = 36
Case "ABS": c.Font.ColorIndex = 2
c.Interior.ColorIndex = 3

End Select
Set c = sh.[C3:AG194].FindNext(c)
Loop Until c Is Nothing Or c.Address = ResAdr
End If
Next sh

Daniel

"Michel69" a écrit dans le message de
news:
> Daniel.C
> Voici le code :
> Sub Bouton18_QuandClic()
> Dim sh As Worksheet, c As Range, ResAdr As String
> MsgBox ("Celà va prendre quelques minutes, Veuillez patienter, Merci")
> For Each sh In Sheets
> Set c = sh.[C3:AG194].Find("*", , , xlWhole)
> If Not c Is Nothing Then
> ResAdr = c.Address
> Do
> Select Case c
>
> Case "M": c.Font.ColorIndex = 1 'Police en Noir
> Case "M": c.Interior.ColorIndex = 38 'Fond Rose Saumon
> Case "S": c.Font.ColorIndex = 1 'Police en Noir
> Case "S": c.Interior.ColorIndex = 37 'Fond Bleu moyen
> Case "J": c.Font.ColorIndex = 1 'Police en Noir
> Case "J": c.Interior.ColorIndex = 15 'Fond Gris 25%
> Case "MAL": c.Font.ColorIndex = 2 'Police en Blanc
> Case "MAL": c.Interior.ColorIndex = 46 'Fond Orange
> Case "C": c.Font.ColorIndex = 1 'Police en Noir
> Case "C": c.Interior.ColorIndex = 36 'Fond Jaune clair
> Case "AT": c.Font.ColorIndex = 2 '<<<<<<<<< PLANTAGE A CE NIVEAU
> Case "AT": c.Interior.ColorIndex = 46
> Case "FC": c.Font.ColorIndex = 1
> Case "FC": c.Interior.ColorIndex = 15
> Case "F": c.Font.ColorIndex = 1
> Case "F": c.Interior.ColorIndex = 36
> Case "R": c.Font.ColorIndex = 1
> Case "R": c.Interior.ColorIndex = 36
> Case "CEX": c.Font.ColorIndex = 1
> Case "CEX": c.Interior.ColorIndex = 36
> Case "RTT": c.Font.ColorIndex = 1
> Case "RTT": c.Interior.ColorIndex = 36
> Case "ABS": c.Font.ColorIndex = 2
> Case "ABS": c.Interior.ColorIndex = 3
>
> End Select
> Set c = sh.[C3:AG194].FindNext(c)
> Loop Until c Is Nothing Or c.Address = ResAdr
> End If
> Next sh
>
> End Sub
>
> "Daniel.C" a écrit :
>
>> A priori, je ne connais pas de limite. Le problème semble plutôt avec
>> colorindex. Le numéro choisi existe-il ? Poste ton code.
>> Daniel
>> "Michel69" a écrit dans le message
>> de
>> news:
>> > Bonjour et encore merci Daniel.C
>> > Ton code fonctionne très bien. En plus j'ai rajouté une
>> > c.font.colorindex
>> > par case pour adapter la police à la couleur de fond. Il me traite
>> > toutes
>> > mes
>> > feuilles.
>> > y a t-il une limite dans les "Case" car au bout du dixième le code
>> > plante
>> > "Impossibilité de définir la colorindex de la classe font". c'est la
>> > couleur
>> > 2 (blanc) tu vois une explication ?
>> > Merci
>> > Michel
>> >
>> > "Daniel.C" a écrit :
>> >
>> >> Pour plus de sureté, remplace :
>> >> Set c = sh.[C3:AG194].Find("*")
>> >> par :
>> >> Set c = sh.[C3:AG194].Find("*", , , xlWhole)
>> >> Daniel
>> >> "Michel69" a écrit dans le
>> >> message
>> >> de
>> >> news:
>> >> > Bonjour à toutes et à tous,
>> >> > Excel 2003. J'ai un classeur comportant 12 feuilles nommées ("Jan
>> >> > 09"...."Déc 09"). Je souhaiterais pouvoir par un bouton VBA colorer
>> >> > les
>> >> > cellules (plage C3:AG194, idem sur toutes les feuilles) en fonction
>> >> > de
>> >> > leur
>> >> > contenu (ex si M mettre en rouge, S en bleu, R en jaune etc...).
>> >> > 1) Quel serait le bout de code (et ou le placer ?) qui passerait en
>> >> > revue
>> >> > toutes mes feuilles et qui pourrait effectuer ces mises en forme.
>> >> > 2) Sachant que sur la ligne 1 de chaque feuille (C1:AG1), comment
>> >> > colorer
>> >> > en
>> >> > même temps la colonne correspondante si la cellule 1 contient la
>> >> > lettre
>> >> > D.
>> >> > Merci pour vos efforts
>> >> > Michel69
>> >>
>> >>
>> >>
>>
>>
>>