VBA Fonction format cellule et concaténer

Fermé
ATO - 9 janv. 2009 à 14:09
 Jack - 2 sept. 2009 à 13:47
Bonjour à tous ,

Mon but est de concaténer des cellules qui pourront selon une variable de date être en gras ou pas.
La solution que j'envisage est donc de créer en VBA une fonction nommée "conservformat" qui me permettra de garder le format de la cellule source tel que dans l'exemple suivant:

=CONCATENER(A1;conservformat(A2);A3)

Ainsi le format de la cellule A2 sera conservé dans ma cellule de destination.

Voici mon début de code:

Function ConservFormat(rngCells As Range) As Double
Application.Volatile
Dim cell As Range
ConservFormat = ???
On Error Resume Next
For Each cell In rngCells
If cell.Font.Bold Then ConservFormat = ???
Next cell
End Function

Comme vous le voyez l'idée est de détecter quelles cellules sont en gras pour mettre une condition de format dans la fonction. Mais il me manque justement la condition de format...
bon je ne sais pas si je suis clair, mais dans le cas où vous comprendriez mon problème, avez-vous une idée de comment faire?

Merci à vous
A voir également:

3 réponses

Dans ma cellule A1 : Bonjour
Dans ma cellule B1 : ça va
Dans ma cellule D1 : La concaténation de ces deux éléments, en respectant la police, le style la taille et la couleur de chacun des textes
(1ère version ... les remarques sont les bienvenues :-))

Sub Concaténation_avec_format()
'
' Macro enregistrée le 02/09/2009 par ****
'
'Concaténation des cellules et mémorisation des tailles des cellules concaténées
Range("D1").Value = Range("A1") & " " & Range("B1")
lg1 = Len(Range("A1"))
lg2 = Len(Range("B1"))

'Lecture du format de la cellule qui nous interesse
'Récupération de la police, du style, de la taille et de la couleur
Range("A1").Select
police = Selection.Font.Name
style_police = Selection.Font.FontStyle
taille = Selection.Font.Size
couleur = Selection.Font.ColorIndex

'Mise en forme des zones voulues
'On précise la position et la longueur de la zone à mettre en forme
Range("D1").Select
With ActiveCell.Characters(Start:=1, Length:=lg1).Font
.Name = police
.FontStyle = style_police
.Size = taille
.ColorIndex = couleur
End With

'Lecture du format de la cellule qui nous interesse
Range("B1").Select
police = Selection.Font.Name
style_police = Selection.Font.FontStyle
taille = Selection.Font.Size
couleur = Selection.Font.ColorIndex

'Mise en forme des zones voulues
'On précise la position et la longueur de la zone à mettre en forme
Range("D1").Select
With ActiveCell.Characters(Start:=(lg1 + 2), Length:=lg2).Font
.Name = police
.FontStyle = style_police
.Size = taille
.ColorIndex = couleur
End With
End Sub
3
Quelqu'un aurait-il une idée? SVP!
J'ai cherché sur les forums mais impossible pour l'instant de trouver yune solution!
Merci d'avance...
0
Personne n'a d'idée!
Ca doit bien être faisable!!!
0