Mise en forme partielle d'une cellule Excel
Résolu/Fermé
Geoffroy45
Messages postés
12
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
1 août 2007
-
1 août 2007 à 09:06
stardu42 - 19 nov. 2007 à 08:42
stardu42 - 19 nov. 2007 à 08:42
A voir également:
- Mise en forme partielle d'une cellule Excel
- Mise en forme conditionnelle excel - Guide
- Liste déroulante excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Verrouiller cellule excel - Guide
- Formule excel - Guide
6 réponses
Sir_DEC
Messages postés
143
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
12 mai 2012
75
1 août 2007 à 09:35
1 août 2007 à 09:35
Bonjour,
La solution est très simple, du moins c'est celle que j'utilise pour avoir plusieurs mises en forme dans une cellule :
cellule.Characters(Start:=X, Length:=Y).propriété
Avec :
- cellule la cellule où l'on souhaite appliquer la modif, sous forme de Range ou de Cells ;
- X le premier caractère du changement, sous forme d'entier (de 1 à nb_car) ;
- Y le nombre de caractères du changement, sous forme d'entier (de 1 à ...) ;
- propriété la propriété à appliquer.
Exemple :
Range("AF7").Characters(Start:=1, Length:=1).Font.Name = "Symbol"
Cet exemple me sert par exemple pour écrire "lambda" (la lettre grec) tout en gardant du texte (français) ensuite.
Voilà, j'espère t'avoir aidé.
La solution est très simple, du moins c'est celle que j'utilise pour avoir plusieurs mises en forme dans une cellule :
cellule.Characters(Start:=X, Length:=Y).propriété
Avec :
- cellule la cellule où l'on souhaite appliquer la modif, sous forme de Range ou de Cells ;
- X le premier caractère du changement, sous forme d'entier (de 1 à nb_car) ;
- Y le nombre de caractères du changement, sous forme d'entier (de 1 à ...) ;
- propriété la propriété à appliquer.
Exemple :
Range("AF7").Characters(Start:=1, Length:=1).Font.Name = "Symbol"
Cet exemple me sert par exemple pour écrire "lambda" (la lettre grec) tout en gardant du texte (français) ensuite.
Voilà, j'espère t'avoir aidé.
Geoffroy45
Messages postés
12
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
1 août 2007
1
1 août 2007 à 11:00
1 août 2007 à 11:00
Merci Sir_DEC.
donc si j'applique ta solution j'obtiens ceci :
Set c = Cells(Numligneseg, Numcolonneseg).Find(CelluleA & " " & CelluleB)
If c Is Nothing Then
'Concatenation de la cellule cible avec les données sources en rouge
semaine = semaine + 1
Numcolonneseg = Numcolonneseg - 1
Windows("Retards carnet 070615.xls").Activate
CelluleA = Cells(Numligne, Numcolonne).Value
Cells(Numligne, Numcol).Select
CelluleB = Cells(Numligne, Numcol).Value
Windows("Retardcarnet2007.htm").Activate
Worksheets(semaine).Activate
Range("Z1").Formula = CelluleA & " " & CelluleB
Cells(Numligneseg, Numcolonneseg).Formula = Cells(Numligneseg, Numcolonneseg).Formula & Chr(10) & Range("Z1").Formula
Cells(Numligneseg, Numcolonneseg).Characters(Start:=X, Length:=Y).Font.colorindex = 3
Range("Z1").Formula = ""
Windows("Retards carnet 070615.xls").Activate
Numligne = (Numligne + 1)
Cells(Numligne, Numcolonne).Select
Else
'Concatenation de la cellule cible avec les données sources
semaine = semaine + 1
Numcolonneseg = Numcolonneseg - 1
Worksheets(semaine).Activate
Cells(Numligneseg, Numcolonneseg).Formula = Cells(Numligneseg, Numcolonneseg).Formula & Chr(10) & CelluleA & " " & CelluleB
Windows("Retards carnet 070615.xls").Activate
Numligne = (Numligne + 1)
Cells(Numligne, Numcolonne).Select
End If
Mon soucis est que les valeurs de X et Y seront completement aléatoires.
donc si j'applique ta solution j'obtiens ceci :
Set c = Cells(Numligneseg, Numcolonneseg).Find(CelluleA & " " & CelluleB)
If c Is Nothing Then
'Concatenation de la cellule cible avec les données sources en rouge
semaine = semaine + 1
Numcolonneseg = Numcolonneseg - 1
Windows("Retards carnet 070615.xls").Activate
CelluleA = Cells(Numligne, Numcolonne).Value
Cells(Numligne, Numcol).Select
CelluleB = Cells(Numligne, Numcol).Value
Windows("Retardcarnet2007.htm").Activate
Worksheets(semaine).Activate
Range("Z1").Formula = CelluleA & " " & CelluleB
Cells(Numligneseg, Numcolonneseg).Formula = Cells(Numligneseg, Numcolonneseg).Formula & Chr(10) & Range("Z1").Formula
Cells(Numligneseg, Numcolonneseg).Characters(Start:=X, Length:=Y).Font.colorindex = 3
Range("Z1").Formula = ""
Windows("Retards carnet 070615.xls").Activate
Numligne = (Numligne + 1)
Cells(Numligne, Numcolonne).Select
Else
'Concatenation de la cellule cible avec les données sources
semaine = semaine + 1
Numcolonneseg = Numcolonneseg - 1
Worksheets(semaine).Activate
Cells(Numligneseg, Numcolonneseg).Formula = Cells(Numligneseg, Numcolonneseg).Formula & Chr(10) & CelluleA & " " & CelluleB
Windows("Retards carnet 070615.xls").Activate
Numligne = (Numligne + 1)
Cells(Numligne, Numcolonne).Select
End If
Mon soucis est que les valeurs de X et Y seront completement aléatoires.
Sir_DEC
Messages postés
143
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
12 mai 2012
75
1 août 2007 à 11:04
1 août 2007 à 11:04
Aléatoire ?
Tu dois bien avoir un moyen de les calculer...
Que contient la cellule que tu veux formater ?
Tu peux toujours mettre un caractère séparateur du genre "partie1 ; partie2" avec ";" le caractère séparateur puis rechercher la position de celui-ci pour formater l'une ou l'autre des partie (avant ou après le caractère séparateur).
Tu dois bien avoir un moyen de les calculer...
Que contient la cellule que tu veux formater ?
Tu peux toujours mettre un caractère séparateur du genre "partie1 ; partie2" avec ";" le caractère séparateur puis rechercher la position de celui-ci pour formater l'une ou l'autre des partie (avant ou après le caractère séparateur).
Geoffroy45
Messages postés
12
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
1 août 2007
1
1 août 2007 à 11:10
1 août 2007 à 11:10
Ma cellule source va contenir un code article suivi de sa nomination. Il sera de couleur rouge si cet article n'a pas été signalé dans une page antérieure.
Je vais essayer de trouver un moyen de calculer sa longueur et de déterminer son premier caractère
Je vais essayer de trouver un moyen de calculer sa longueur et de déterminer son premier caractère
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sir_DEC
Messages postés
143
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
12 mai 2012
75
1 août 2007 à 12:02
1 août 2007 à 12:02
Tu pourrais simplement ranger la cellule sous la forme "Code_article - Désignation", il te suffit ainsi de colorer du cractère 1 jusqu'à celui précédent le "-", ou si ton code peut contenir des tirets, mets un "#".
Enfin je pense que le plus simple serait d'utiliser un sépérateur, ou carrément d'utiliser deux colonnes.
Enfin je pense que le plus simple serait d'utiliser un sépérateur, ou carrément d'utiliser deux colonnes.