XL 2021 Déterminer la hauteur d'une formule (barre d'outils)

  • Initiateur de la discussion Initiateur de la discussion Lolote83
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Lolote83

XLDnaute Barbatruc
Bonjour à tous,
Il arrive très régulièrement que des formules à rallonges soient incluses dans un fichier.
En sélectionnant la cellule en question, si la hauteur de la barre d'outils formule est à 1 ligne, on ne distingue pas l'intégralité de la dite formule
C'est pourquoi, je cherche un moyen d'agrandir / de réduire la hauteur de la barre d'outils.
J'ai réussi si la formule est saisie avec "Alt + Entrée" afin de passer à la ligne
Cependant, si ma formule est simplement inscrite dans sa continuité, et que sa longueur passe en ligne 2 ou plus, cela ne fonctionne pas.
Exemple ICI avec si CLIC sur :
- Cellule Bleue = Formule inscrite d'une seule traite mais qui dépasse largement la longueur de la place allouée à la formule (barre de formule) - Cela ne fonctionne pas
- Cellule Verte = Même formule mais en utilisant le "Alt + Entrée". Cela fonctionne (Agrandissement de la barre d'outils)
J'ai pensé tester la longueur de la formule afin de déterminer si celle-ci pouvait ou non être une grande formule.
Cependant, selon ou est positionner la barre de formule, la longueur seule ne peut être prise en compte.

Par exemple
- la formule bleue est saisie sans interruption
1764240951005.png

- la formule verte (même formule) est saisie avec "Alt + Entrée"
1764241025752.png

Du coup, comment peut on tester si une formule est supérieure à une ligne ou pas.

@+ Lolote83
 

Pièces jointes

Dernière édition:
Solution
Re,
Ne serait ce pas suffisant ?
VB:
Function Fct_Hauteur_BO_Formule(xFormule)
    '-------------------------------------------------------------------------------------------
    '          Fonction permettant de déterminer la hauteur d'une formule dans la barre d'outils
    '       - Agrandissement/Réduction en fonction du nombre de lignes de la fomrule
    '-------------------------------------------------------------------------------------------
    xLongueur = Len(xFormule)               'On détermine la longueur (Nbre caratère) de la formule
    If xFormule Like "*" & Chr(10) & "*" Then
        xDecoupe = Split(xFormule, Chr(10))     'On découpe en fonction du retour à la ligne
        xHauteur = UBound(xDecoupe) + 1         'On...
Re,
Ne serait ce pas suffisant ?
VB:
Function Fct_Hauteur_BO_Formule(xFormule)
    '-------------------------------------------------------------------------------------------
    '          Fonction permettant de déterminer la hauteur d'une formule dans la barre d'outils
    '       - Agrandissement/Réduction en fonction du nombre de lignes de la fomrule
    '-------------------------------------------------------------------------------------------
    xLongueur = Len(xFormule)               'On détermine la longueur (Nbre caratère) de la formule
    If xFormule Like "*" & Chr(10) & "*" Then
        xDecoupe = Split(xFormule, Chr(10))     'On découpe en fonction du retour à la ligne
        xHauteur = UBound(xDecoupe) + 1         'On récupère le dernier argument + 1
    Else
        xHauteur = Application.Max(Round(xLongueur / 100, 1), 1)    ' 100 à ajuster
    End If
    Fct_Hauteur_BO_Formule = xHauteur
End Function
Car tenir compte de la largeur de la fenêtre excel ça risque d'être une usine à gaz pour pas grand chose.
 

Pièces jointes

Re,
J'ai essayé d'aller plus loin pour être plus "élégant" car ce n'est pas parfait, mais c'est quasi impossible en tenant compte du nombre de caractères.
Ces 2 formules ont le même nombre de caractères mais ont des longueurs différentes.
1764246826267.png
 
Re bonjour,
En tous les cas, cela fonctionne pour le moment.
Du coup, je cherche maintenant le moyen de faire appel à cette fonction quelque soit le classeur ouvert.
Le problème est que la fonction est déclenchée depuis le "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" et tous les classeurs n'ont pas ce code. A part faire un copié collé de cette partie et aller chercher la fonction.
Je réfléchi, mais je trouvais l'idée pas mal car il m'arrive souvent d'avoir des classeurs avec ses formules à rallonges et ne voyant pas l'intégralité de la formule, je me suis fait avoir plusieurs fois. Il fallait alors faire comme sur ta démo du post#2
Si tu as une idée, je suis preneur
@+ Lolote8
 
Re,
Activer une macro pour tous les classeurs XL uniquement pour quelquefois agrandir la hauteur de la barre de formule me semble compliqué.
Je préfère quand même l'élargir à la main.
D'autant que vous pourriez avoir des Worksheet_SelectionChange dans les classeurs ouverts.
Donc même s'il existait une solution il risquerait d'y avoir collusion de macro entre classeurs.
 
Re bonjour,
D'autant que vous pourriez avoir des Worksheet_SelectionChange dans les classeurs ouverts.
Donc même s'il existait une solution il risquerait d'y avoir collusion de macro entre classeurs.
J'ai effectivement pensé à ce problème. C'était à la fois un petit défi et une idée qui m'est passée par la tête.
Donc, je vais continuer à faire quelques recherches, mais sans toutefois y passer des nuits entières. Merci de ton soutien .....
@+ Lolote83
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour