XL 2010 Concatener avec polices de caractère différentes

jmh1

XLDnaute Occasionnel
Bonjour à tous,

J'ai un fichier avec 3 colonnes dont la première est avec une police spéciale. J'aimerai concaténer ces 3 colonnes : le souci est qu'il ne me met pas la bonne police pour le premier caractère.

Le 2ème souci est que je n'ai pas forcément un caractère dans la 1ère colonne.

Je ne peux pas non plus utiliser de caractères ASCII car c'est une police spéciale.

Je joins un fichier exemple (j'ai mis la 1ère colonne en windings car je pense que peu de personne possède la police que j'utilise)

Merci pour votre aide
 

Pièces jointes

  • Essai concatener avec symbole.xlsx
    9.5 KB · Affichages: 36

job75

XLDnaute Barbatruc
Bonjour jmh1,

Voyez le fichier joint et cette macro :
Code:
Sub Concatener()
Dim result As Range, i&, c As Range
Set result = [F1] 'en-tête du tableau
result.EntireColumn.Font.Name = result.Font.Name 'RAZ
With [A1].CurrentRegion
  For i = 2 To .Rows.Count
    Set c = .Cells(i, 1)
    result(i) = c & c(1, 2) & c(1, 3)
    If c <> "" Then result(i).Characters(1, Len(c)).Font.Name = c.Font.Name
  Next
End With
result(i).Resize(Rows.Count - i + 1).ClearContents 'RAZ
End Sub
A+
 

Pièces jointes

  • Essai concatener avec symbole(1).xlsm
    24.7 KB · Affichages: 31
Dernière édition:

job75

XLDnaute Barbatruc
Re,

Pour tester j'ai recopié le tableau sur 12 000 lignes.

Chez moi sur Win 10 Excel 2013, avec la MFC, la macro s'exécute en 4,5 secondes.

En ajoutant au début Application.ScreenUpdating = False => 2,7 secondes.

A+
 

job75

XLDnaute Barbatruc
Re,

Je viens de corriger une petite erreur dans mon post #2.

Ce n'est pas :
Code:
result(i + 1).Resize(Rows.Count - i).ClearContents 'RAZ
qu'il faut écrire en fin de macro mais :
Code:
result(i).Resize(Rows.Count - i + 1).ClearContents 'RAZ
En effet la variable i est incrémentée à la fin de la boucle.

A+
 

Discussions similaires

Réponses
7
Affichages
275

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400