Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Bonjour à tous.
Je voudrais concatener plusieurs cellules (textes et chiffres) avec un style choisi pour chaque cellule d'origine. Par exemple: assembler du texte en police normale et une valeur numérique en gras ou en couleur. Je n'arrive pas imposer plusieurs styles par cellule.
Peut-on faire du code dans une formule ou en VBA ?
D'avance merci.
Ci-joint un exemple de ce que l'on peut faire. La macro est dans le code de la 1ère feuille et se déclanche quand l'une des cellules des colonnes A B C est modifiée.
Je suis nouvelle par ici, j'ai plutôt tendance à vous lire qu'à participer..
Mais aujourd'hui je remonte un vieux post après avoir passé beaucoup trop de temps à essayer de faire fonctionner une variation de cette macro..
Je n'arrive pas à comprendre comment modifier les cellules ou lettres qui seront en couleur.
J'essaie de mettre en forme des données que je récupère grâce à la fonction concatener.
En colonne C j'ai une cellule avec du texte, des sauts de ligne et plusieurs hauteurs de police différentes. En colonne D, j'ai du texte, également avec des sauts de lignes et plusieurs tailles de polices différentes, qui s'alignent avec ma colonne D. En colonne E, j'ai mes informations récupérées avec la fonction concatener, mais j'ai besoin de faire varier la hauteur de la 1ère ligne pour m'aligner avec mes colonnes C et D, et que cette ligne soit invisible, donc en blanc.
Je suis sure que mon fichier excel n'est pas fou fou, je prends des infos à droite à gauche sans réelle connaissance excel, d'habitude je me débrouille, mais là je sèche.
Quand la macro se met à jour la 1ère fois, ça fonctionne. Mais si je modifie à nouveau une information du tableau, ça ne marche plus.
Edit: j'ai solutionné mon problème par miracle? Avec ce code:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
' la macro se met à jour seule quand on tappe dans les cases du range
If Intersect(Target, [F7:L65536]) Is Nothing Or Target.Count > 1 Then Exit Sub
' nommer les cellules
f$ = Cells(Target.Row, 6)
g$ = Cells(Target.Row, 7)
h$ = Cells(Target.Row, 8)
I$ = Cells(Target.Row, 9)
j$ = Cells(Target.Row, 10)
r$ = Cells(Target.Row, 18) ' X blanc du début pour aligner textes
s$ = Cells(Target.Row, 19) ' saut de ligne
With Cells(Target.Row, 5) ' cellule cible du concatener
.Value = r & s & f & s & g & s & h & s & I & s & j
With .Characters(Start:=Len(r), Length:=Len(r)).Font
.FontStyle = "gras"
.Size = 11
.ColorIndex = 2
End With
With .Characters(Start:=Len(r) + 1, Length:=Len(s & f & s & g & s & h & s & I & s & j)).Font
.FontStyle = "Normal"
.Size = 8
.ColorIndex = 1
End With
End With
End Sub
Je remercie infiniement par avance toute personne qui se penchera sur ce problème.
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.