Ajustement automatique hauteur ligne formules excel [Fermé]

Signaler
Messages postés
4
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
11 août 2016
-
Messages postés
17293
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 octobre 2020
-
Bonjour,
Voici mon souci, j'utilise Office 2010. J'ai disons un tableau de saisie sur un 1er onglet, et sur un second onglet, un autre tableau qui utilise beaucoup de formules à partir des données du tableau de saisie.

Dans une cellule de mon tableau de saisie, je saisie soit 1, soit 2 voir 3 lignes de textes (séparé par ALT + ENTRER pour passer à la ligne suivante). Pour cette cellule, la hauteur des lignes est ajustée automatiquement en fonction du nombre de lignes que je saisie.
J'ai donc paramétré pour cette cellule, le renvoi auto des lignes + ajustement présent dans Format/Alignement).

Dans mon second onglet, j'ai une cellule qui contient la formule ='ONGLET1!CELLULE, afin d'afficher exactement le même contenu que la cellule saisie sur le premier onglet. Le paramétrage est exactement le même que la cellule du 1er onglet soit renvoi auto des lignes + ajustement.
C'est là que le problème se pose, si je change le nombre de ligne de ma 1ère cellule, l’ajustement de la hauteur de ligne se fait bien pour cette cellule, mais pas pour celle qui contient la formule. Je suis obligé de sélectionner la cellule et de cliquer deux fois sur n'importe quel paramètre de l’alignement. (exemple : je désélectionne le renvoi auto et je le sélectionne à nouveau, là, l'ajustement se fait bien).
Je voudrais ne pas à avoir à faire cette manipulation (les formules sont elles bien recalculés automatiquement OPTION/FORMULES/MODE DE CALCUL/AUTO).

Merci d'avance.

7 réponses

Messages postés
17293
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 octobre 2020
4 304
Re,

autrement en VBA tu peux paramétrer ton code de façon définitive, si par exemple il s'agit de ta feuille nommée Feuil2 et tes données qui conditionnent la hauteur de ligne est colonne A
il suffit de faire un clic droit sur l'onglet de cette feuille/Visualiser le code et coller ce code
Private Sub Worksheet_Activate()
On Error Resume Next
For Each cel In Range("A:A") 'conditionne une plage
If cel <> "" Then
Set m = cel.MergeArea
m.UnMerge
m.WrapText = True 'renvoie à la ligne
m.HorizontalAlignment = xlCenterAcrossSelection
m.Rows.AutoFit
m.Merge
m.HorizontalAlignment = xlGeneral 'facultatif bien sûr
End If
Next
End Sub


il suffit simplement d'adapter l'index colonne que j'ai mis en gras Range("A:A")
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
23589
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 octobre 2020
6 421
Bonjour, bonjour Mike,

Pourquoi tu tiens compte des fusions ?
Private Sub Worksheet_Activate()
    Rows.AutoFit
End Sub

ne suffit pas ?
eric
Messages postés
17293
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 octobre 2020
4 304
Salut Eriiic,

pour traiter tous les cas de figure qui pourrait se présenter en tenant compte du post 2 du demandeur
et prévoir le retour ligne s'il n'a pas été programmé
mais effectivement Rows.AutoFit suffit
cordialement
Messages postés
17293
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 octobre 2020
4 304
Bonjour,

Pour ce que tu veux faire, il faut passer par le VBA si tu as quelques notions

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Messages postés
4
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
11 août 2016

Merci pour la rapidité :)
Je préfèrerais ne pas utilisé vba (j'ai quelques notions, c'est plutôt pour que les personnes qui utilise le fichier n'ai pas besoin de modifier le vba en cas de problème ou de modification du fichier). Du coup cela n'est pas possible? Je trouve le fonctionnement un peu bête puisque le recalcule de la formule est fait automatiquement, pourquoi pas l'ajustement?

En tout cas, encore merci.
Messages postés
17293
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 octobre 2020
4 304
Re,

sans VBA impossible de l'automatiser, mais si la hauteur de ligne ne s'applique pas à des cellules fusionnées tu peux le faire en deux clics

1/clic gauche à gauche du premier entête de la colonne A et au dessus de l'entête de ligne 1, la page entière se mettra en surbrillance

2/clic sur l'onglet Accueil/module Cellule/Format/Ajuster la hauteur de ligne
Messages postés
4
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
11 août 2016

Cela reviens à mes deux clics sur renvoi auto. Mais merci pour l'astuce.
Messages postés
4
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
11 août 2016

Je suppose que cela va ajuster la hauteur de toute mes lignes or je n'en ai besoin uniquement pour certaine cellules.

J'ai garder ça :

Private Sub Worksheet_Activate()
On Error Resume Next
For Each cel In Range("B20:B50") 'conditionne une plage
If cel <> "" Then
Set m = cel.MergeArea
m.Rows.AutoFit
End If
Next
End Sub

C'est peut être un peu trop. Enfin, si je fais des manipulations sur l'onglet, copié ou autre. Je perd ma formule. Si c'est moi qui l'utilise, pas de problème. Mais cela ne me convient quand même pas trop. Merci à vous
Messages postés
17293
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 octobre 2020
4 304
Re,

c'est toi qui juge, je t'ai donné un code qui traite le retour ligne, s'il y a des cellules fusionnées et s'applique à une colonne afin de prendre en compte ton post 2
à toi de voir