Macro fusion de cellules en fonction de la sélection + écrit

Bonjour,

J'ai (tenté ) fait une macro qui fusionne des cellules en fonction de la sélection choisie + couleur +border +écriture à l'intérieur (90°).

Je rencontre deux problèmes:

Ma macro est très lente car elle exécute une action après l'autre (je ne suis pas sûr que cela la meilleure méthode...), de plus lors d'une sélection multiple le texte s'inscrit uniquement dans la première zone à fusionner, les autres n'ont rien d'inscrit à l'intérieur.

Je suis (de loin) pas assez calé pour résoudre ce problème, malgré pas mal de recherche pour essayer d'éviter de déranger le forum avec des questions qui vous paraissent peut être un peu simpliste (pas pour moi).

Je vous remercie d'avance pour l'aide que vous pourriez m'apporter...

Ci dessous la macro en question... (fichier en pièce jointe si besoin)

Sub Indice_Propre()

Selection.Select

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

.Orientation = 90

End With

Selection.Merge

With Selection.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.Color = 13395507

End With

With Selection.Borders(xlEdgeLeft)

.LineStyle = xlContinuous

.Weight = xlMedium

End With

With Selection.Borders(xlEdgeTop)

.LineStyle = xlContinuous

.Weight = xlMedium

End With

With Selection.Borders(xlEdgeBottom)

.LineStyle = xlContinuous

.Weight = xlMedium

End With

With Selection.Borders(xlEdgeRight)

.LineStyle = xlContinuous

.Weight = xlMedium

End With

With Selection.Font

.Name = "Calibri"

.FontStyle = None

.Size = 11

.ThemeColor = xlThemeColorDark1

.TintAndShade = 0

.ThemeFont = xlThemeFontMinor

End With

ActiveCell.FormulaR1C1 = "IP"

Selection.Select

End Sub

Bonjour,

remplace

ActiveCell.FormulaR1C1 = "IP"

par

Selection.FormulaR1C1 = "IP"

Cela semble régler ton problème, si j'ai bien compris celui-ci ^^

Bonjour Guitouille,

Merci pour ton aide, c'est vraiment sympa cela fonctionne très bien effectivement!!

Par contre comment faire pour que cette macro soit un peu plus simplifiée pour ne pas prendre trop longtemps à s'effectuer

Ce n'est pas un point sur lequel je peux t'aider, la plupart des codes que je pond ne sont pas optimisés en terme de temps de calcul non plus.

Cela deviens long quand on commence à imbriquer des boucles entre elles.

Peut-être lorsque tu ajoute les bordures une par une, il me semble qu'il y a une fonction comme Selection.Borders.Value = 1 qui applique la bordure tout autour de la sélection.

Merci de ton aide.

Je vais creusez pour simplifier à moins que la solution vienne du forum

Pour la Selection.Borders.Value = 1; la bordure est fine, j'aurais besoin de l'avoir en plus épais... est-ce possible?

Encore merci.

Oui, prend exemple sur les bordures que tu définissait une par une

ça devrait donner

With Selection.Borders

.Value = 1

.LineStyle = xlContinuous

.Weight = xlMedium

End With

Ok tout marche

Merci pour tout! Je clôture validé et creuse encore pour améliorer la vitesse d'exécution 8)

Bon W-E!

Rechercher des sujets similaires à "macro fusion fonction selection ecrit"