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 Jonochka,

Voyez le fichier joint et la macro du bouton :
VB:
Sub AjusterPolice()
Dim cel As Range, police#, h#, i%
Set cel = [E3] 'à adapter
police = 50 'maximum à adapter
h = cel.RowHeight
Application.ScreenUpdating = False
cel.WrapText = True 'renvoi à la ligne
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 Sub
Next
End Sub
A+
 

Pièces jointes

  • Ajuster police(1).xlsm
    16.2 KB · Affichages: 21

Jonochka

XLDnaute Nouveau
Hello Job,

Grands mercis pour ton msg.
En plus cela fonctionne, fantastique !

Je ne suis en revanche pas le roi des macros (je n'y connais rien en fait) et je n'ai pas encore réussi à l'adapter à mon fichier. Mais j'y travaille !

Concernant cette macro, si j'ai plusieurs cellules de même taille qui auront un texte de longueur variable et non identique, comment je modifie ta ligne :

Set cel = [E3] 'à adapter

Du genre,
Set cel = [E3:E5] 'à adapter
ou
Set cel = [E3;E4;E5] 'à adapter
ou
Set cel = [E3] 'à adapter
Set cel = [E4] 'à adapter
Set cel = [E5] 'à adapter
ou ???

Enfin, j'imagine que si tu as fait cette macro, c'est parce qu'Excel n'offre pas (ou plus) l'option "automatique" de combiner "ajuster" et "envoyer à la ligne automatiquement" ?

Merci beaucoup pour le partage de tes compétences
 

patricktoulon

XLDnaute Barbatruc
re
bonsoir
Enfin, j'imagine que si tu as fait cette macro, c'est parce qu'Excel n'offre pas (ou plus) l'option "automatique" de combiner "ajuster" et "envoyer à la ligne automatiquement" ?

excel ne l'a jamais fait ;)
quel intérêt y aurait il a ajuster pour faire un renvoie a la ligne qui sera inutile puisque ajusté :rolleyes:
ajuster tout court fait très bien l'affaire
et le calcul serait simple puisque columnwidth te donne le nombre caractères avec font size à 11 pour font name calibri
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

"Ajuster" reste sur une seule ligne (chez moi en tous cas) !
Oui, c'est le principe de l'option "Ajuster" : Excel diminue la taille de la police de caractères pour que tout le texte tienne dans la largeur de la cellule.

En revanche, l'option "Renvoyer à la ligne automatiquement" renvoie à la ligne autant de fois qu'il le faut pour que tout le texte tienne dans la largeur de la cellule dans le but de ne pas modifier la taille de la police de caractères.


Donc l'association des deux rendrait la possibilité de lignes supplémentaires, et ainsi une lecture simplement visible
Tu comprends maintenant qu'il est impossible d'associer les deux. ;)

Je pense qu'il faut passer par une macro qui fasse un peu de l'un et un peu de l'autre : dans tous les cas utilisation de l'option "Renvoyer à la ligne automatiquement", plus diminution de la police de caractères si tout le texte ne tient pas dans la cellule, le tout sans modification de la largeur bien sûr, mais de aussi de la hauteur de la cellule.
Tu risques tout de même d'éventuellement te retrouver avec des fins de texte non visibles... :(
 
Dernière édition:

Jonochka

XLDnaute Nouveau
Salut Marcel,

Oui je suis au courant des deux variantes !

Ma question est plutôt qu'elles étaient compatibles !

Tu peux aussi imaginer un retour à la ligne avec une réduction de la taille de la police, non ?

Merci

(PS : et c'était possible)
 

TooFatBoy

XLDnaute Barbatruc
Les deux principes étant antagonistes, ce que tu demandais au départ n'est bien évidemment pas possible tel quel. ;)
En revanche, ça devient possible (actuellement par macro) si tu ajoutes une condition à ta question initiale : la condition en question est d'avoir une taille minimale de police de caractères.

Il me semble que la macro que tu as contient une ligne de code qui modifie la hauteur de la ligne (si besoin). ;)


Le principal dans tout ça est que tu aies obtenu une réponse qui te convienne ! :cool:
 
Dernière édition:

Jonochka

XLDnaute Nouveau
Les deux principes étant antagonistes, ce que tu demandais au départ n'est bien évidemment pas possible tel quel. ;)
En revanche, ça devient possible (actuellement pas macro) si tu ajoutes une condition à ta question initiale : la condition en question est d'avoir une taille minimale de police de caractères.

Il me semble que la macro que tu as contient une ligne de code qui modifie la hauteur de la ligne (si besoin). ;)


Le principal dans tout ça est que tu aies obtenu une réponse qui te convienne ! :cool:
Moyen

Une macro demande une action

J'aurai des lignes venant directement du net dans mon fichier - taille pas claire - et bien plus simple si automatisé, sans devoir appuyer sur le bouton
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo