XL 2013 Comment changer automatiquement la taille de police dans une cellule sous E

Jonochka

XLDnaute Nouveau
Bonjour,

Il me semble que je savais le faire dans une version précédente, mais là, sous Excel 2013, je ne trouve pas !

Dans un formulaire, j’ai parfois, dans certaines cellules, un texte trop long. J’aimerais trouver une solution pour que la police initiale s’adapte (en diminuant), sans que ni la hauteur ou largeur de la cellule ne soient modifiées, seulement la taille de la police et le retour à la ligne automatique me convenant.

J’ai bien entendu essayé les options suivantes, mais cela donne ceci :

Voir fichier "PrintScreen" annexé (suis pas certain d'avoir réussi l'annexe, désolé).

Quelqu’un aurait une idée ?

Merci par avance
 

Pièces jointes

  • PrintScreen.JPG
    PrintScreen.JPG
    79.7 KB · Affichages: 44

job75

XLDnaute Barbatruc
Bonjour le fil, le forum,

Si l'on veut traiter automatiquement tous les textes de la colonne E voyez ces macros du fichier (2) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim police#, cel As Range, h#, i%
police = 11 'maximum à adapter
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With [E:E] 'à adapter
    .WrapText = True 'renvoi à la ligne
    For Each cel In .SpecialCells(xlCellTypeConstants)
        h = cel.RowHeight
        For i = 10 * police To 1 Step -1
            cel.Font.Size = i / 10 'pas de 0.1
            cel.Rows.AutoFit 'ajustement hauteur
            If cel.RowHeight <= h Then cel.RowHeight = h: Exit For
    Next i, cel
End With
End Sub

Sub RAZ()
With [E:E] 'à adapter
    .WrapText = False
    .Font.Size = 11
End With
End Sub
Cela dit en général on ne touche pas à la police, on ajuste la largeur des colonnes ou la hauteur des lignes.

Bonne journée.
 

Pièces jointes

  • Ajuster police(2).xlsm
    17.8 KB · Affichages: 2

job75

XLDnaute Barbatruc
L'exécution de la macro Worksheet_Change peut bien sûr prendre du temps.

J'ai testé le fichier précédent en multipliant par 1000 le nombre de lignes.

Donc 4000 cellules à traiter, chez moi cela se fait en 5,5 secondes.
 

Jonochka

XLDnaute Nouveau
Bonsoir,

Je reviens vers vous car je n’y arrive pas, malgré votre aide.

J’ai essayé d’adapter la macro de Job75, mais n’ai pas réussi –(((

Qqn pourrait me dire comment créer UNE macro (dans la case rouge), afin de redimensionner les cellules en évidence en jaune dans le fichier joint ? (colonnes K, M, Y) toutes les tailles de cellules devraient être respectées, la police de base étant le Arial Unicode 10, au max, donc à réduire si nécessaire)

Merci par avance
 

Pièces jointes

  • Question macro - pour Forum SVP.xlsm
    10.9 KB · Affichages: 4

job75

XLDnaute Barbatruc
Bonsoir Jonochka,

Chez moi avec l'affichage "Mise en page" que vous avez mis la macro plante Excel.

Avec l'affichage "Normal" du fichier joint pas de problème :
VB:
Sub AjusterPolice()
Dim police#, cel As Range, h#, i%
police = 10 'maximum à adapter
Application.ScreenUpdating = False
For Each cel In [K4:K11,M4:M11,Y4:Y11] 'à adapter
    cel.WrapText = True 'renvoi à la ligne
    h = cel.RowHeight
    For i = 10 * police To 1 Step -1
        cel.Font.Size = i / 10 'pas de 0.1
        cel.Rows.AutoFit 'ajustement hauteur
        If cel.RowHeight <= h Then cel.RowHeight = h: Exit For
Next i, cel
End Sub
Bonne nuit.
 

Pièces jointes

  • Question macro - pour Forum SVP(1).xlsm
    19.4 KB · Affichages: 6

Jonochka

XLDnaute Nouveau
Hello Job,

Merci encore pour ton soutien.

Il est vrai que mes tentatives ont souvent mené à un « crash » d’excel, je n’avais conscience du mode d’affichage que tu mentionnes. Le choix pour « mis en page » est simplement dû au fait que j’ai besoin d’un formulaire « en dessous ».

En revanche, je « bug » toujours, car malgré ton aide et ta macro, mon ordi me répète :
« Can not run the macro XXX. May be not available in this workbook or all macros are disabled »

Et l’icône « macro security » est en jaune


Ta macro initiale, « Ajuster police », fonctionne (même si le même icône est également jaune)

Dès lors je ne comprends pas bien ce que je dois faire ???
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 849
dernier inscrit
florentMIG