Pb avec feuilles classeur

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #16697801
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" 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


Daniel.C
Le #16697791
Pour plus de sureté, remplace :
Set c = sh.[C3:AG194].Find("*")
par :
Set c = sh.[C3:AG194].Find("*", , , xlWhole)
Daniel
"Michel69" 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


Michel69
Le #16699231
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" 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





Michel69
Le #16699401
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" > 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
>
>
>


Daniel.C
Le #16699501
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" 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" 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







Daniel.C
Le #16699491
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" 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" > 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
>
>
>




Michel69
Le #16699481
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" 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" >> 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
>>
>>
>>





Michel69
Le #16699471
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" 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" >> 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
>>
>>
>>





Daniel.C
Le #16699801
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" 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" 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" >> 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
>>
>>
>>







Michel69
Le #16700041
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" 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" >> 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" >> >> 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
>> >>
>> >>
>> >>
>>
>>
>>





Publicité
Poster une réponse
Anonyme