Comment attribuer plusieurs couleurs à une chaine de caracteres située dans une
pm78000
Messages postés11Date d'inscriptionlundi 4 août 2008StatutMembreDernière intervention16 octobre 2008
-
15 oct. 2008 à 18:20
Saratum
Messages postés21Date d'inscriptionlundi 23 mars 2009StatutMembreDernière intervention 1 avril 2009
-
24 mars 2009 à 11:13
Bonjour,
Je bloque depuis 2 jours sur ce problème.
Je travaille avec des numéros de risques à 2 dates différentes. J'insère chaque numéro de risque dans une case du tableau. Plusieurs risques peuvent se trouver dans la même cellule donc je fais une concaténation.
On me demande de changer de couleur de police pour distinguer le risque de la 1ere date ( point initial) de celui de la 2nde date (date d'avancement).
Voici mon programme :
If Numlig >= 2 Then
'Point initial
For i = 2 To Numlig
Select Case Sheets(nomOnglet).Cells(i, 18).Value
Case 1
lig = 24
Case 4
lig = 23
Case 7
lig = 22
Case 10
lig = 21
End Select
Select Case Sheets(nomOnglet).Cells(i, 17).Value
Case 1
col = 4
Case 4
col = 5
Case 7
col = 6
Case 10
col = 7
End Select
'Date courante
For i = 2 To Numlig
Select Case Sheets(nomOnglet).Cells(i, 23).Value
Case 1
ligB = 24
Case 4
ligB = 23
Case 7
ligB = 22
Case 10
ligB = 21
End Select
Select Case Sheets(nomOnglet).Cells(i, 22).Value
Case 1
colB = 4
Case 4
colB = 5
Case 7
colB = 6
Case 10
colB = 7
End Select
Le problème est que lorsque la cellule comporte déjà un numéro de risque d'une certaine couleur, il va automatiquement me mettre le nouveau numéro de risque de la même couleur alors que ce n'est pas ce qui est demandé. Je cherche des dizaines de solutions différentes mais toutes me ramènent au même résultat.
Est-ce que qqun aurait au moin sune explication ????????
Merci d'avance
A voir également:
Comment attribuer plusieurs couleurs à une chaine de caracteres située dans une
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 15 oct. 2008 à 18:39
bonjour
dans une cellule excel tu ne peux avoir qu'une seule et unique couleur de fond et une seule et unique couleur de texte
c'est un tableur pas un traitement de texte
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
pm78000
Messages postés11Date d'inscriptionlundi 4 août 2008StatutMembreDernière intervention16 octobre 2008 16 oct. 2008 à 09:05
Salut bigfish_le vrai,
Mon problème est le suivant : je veux insérer des numéros de risques dans des cellules d'un tableau selon des paramètres A et B. Le placement est bon dans le tableau selon les valeurs de A et de B. Là où ça se complique c'est que mes risques ont des valeurs de paramètres différents selon la date (d'où les 2 Select Case). Et on me demande de mettre d'une certaine couleur les risques de la 1ere date (en bleu) et d'une autre les risques à la seconde date (en kaki).
Le problème est que si j'ai par exemple un risque n°1 qui doit être en bleu puis un risque n°2 qui doit être en kaki dans la même cellule, il va me mettre le risque n°2 en bleu aussi et c'est là que je comprends pas d'où vient le problème...
J'ai vérifié que ce risque n°2 appartenait bien à la 2nde date. En fait mon changement de couleur de police ne marche pas si j'ai déjà un risque d'une autre couleur avant car la couleur ne va pas changer.
Exemple : si je veux Risk 1 - Risk 2 - Risk 3 au niveau des couleurs, vb me sort :
Risk 1 - Risk 2 (donc erreur) - Risk 3
Pourquoi? C'est quoi le pb dans mon prgm?????
Je sais pas si j'ai été très claire....
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 16 oct. 2008 à 17:21
Salut,
ton code en version simplifier et qui apparemment fait ce que tu souhaites
j'ai ajouter une variable SuivantDate qui permet de boucler sur les 2 cas Point initial et Date courante.
ATTENTION tout les POINTS sont OBLIGATOIRE
Dim SuivantDate As Long
With Sheets(nomOnglet)
If Numlig >= 2 Then
For SuivantDate = 17 To 22 Step 5 '17-->Point initial, 22-->Date courante
For i = 2 To Numlig
Select Case .Cells(i, SuivantDate + 1).Value 'colonne 18 ou 23
Case 1
lig = 24
Case 4
lig = 23
Case 7
lig = 22
Case 10
lig = 21
End Select
Select Case .Cells(i, SuivantDate).Value 'colonne 17 ou 22
Case 1
col = 4
Case 4
col = 5
Case 7
col = 6
Case 10
col = 7
End Select
With .Cells(lig, col)
If .Value = "" Then 'si il n'y a rien dans la cellule on met en forme
With .Font
.ColorIndex = 41 'couleur par defaut du text
.Bold = True
.Name = "Arial"
.Size = 8
End With
.Value = Sheets(nomOnglet).Cells(i, 16).Text 'et on ajoute le premier risque
Else 'on ne change que la couleur du text a partir du 2ieme risque
.Value = .Value & " " & Sheets(nomOnglet).Cells(i, 16).Text nbcaractA2 InStr(1, .Value, Chr(32)) 'recherche du separateur espace>Chr(32)
With .Characters(Start:=nbcaractA2 + 1).Font
.ColorIndex = 12 'couleur du text a partir du 2ieme risque
End With
End If
End With
Next i
Next SuivantDate
End If
End With
Saratum
Messages postés21Date d'inscriptionlundi 23 mars 2009StatutMembreDernière intervention 1 avril 2009 24 mars 2009 à 11:13
Bonjour,
J'ai un problème un peu similaire, je viens de créer un post là dessus mais, vous allez peut etre pouvoir m'aider plus rapidement si je passe par ici...
voila, j'écris un paragraphe de texte dans une cellule avec la fonction concatener...
a1= petit
a2=exemple
a3=de
a4=ce
a5=que
a6=je
a7=veux
a8=faire
et c7= =concatener(a1;a2;a3;a4;a5;a6;a7;a8)
ce qui me donne : petit exemple de que que je veux faire....
et moi je veux que ça donnes
petit exemple de que que je veux faire
Donc, je voudrais créer une fonction que je pourrais intégrer à mon concatener ou le remplacer....
le contenu de a2 et a7 sont le résulta d'un if(b1;b2;"-----") et idéalement je ne voudrais pas avoir les ----- en gras...
Fak, je me demandais si c'était possible de me faire une macro qui me permettrait d'écrire de quoi du genre dans les cellules où j'en ai besoin, sans que j'ais besoin d'exécuter une macro... un peu comme une fonction que je pourrais copier dans les fichier mère d'excel qui ferait partie prenante des fonctions....
exemple:
fonction (variable 1;variable 2) (je saisis la variable quand j'utilise la fonction là... )
variable 2.... valeurs....
1 =gras
2=italic
3=gras+italic
c7... =(a1&Si(a2="-----";"-----";Fonction(a2;3)&a3&a4&a5&a6&Si(a7="-----";"-----";Fonction(a7;3)&a8)
Pour que ça me donne
petit exemple de que que je veux faire
ou
petit ----- de que que je ----- faire
merci