Ajustement automatique ligne + hauteur minimum

Bonjour à tous,

Je suis en train de travailler sur un outil de contrôle des délais.

Dans une cellules spécifique, j'ai du texte (contenu variable) qui peut prendre plusieurs lignes (retour à la ligne automatique)

Je souhaiterais pouvoir ajuster la hauteur de ligne automatiquement en appuyant sur un bouton.

Je souhaite également que cette action garantisse (quand il y a peu de texte) une hauteur minimum de 75

Voilà une macro qui marche pour la première partie :

Sub HauteurLigneAuto()

Selection.EntireRow.Select

Selection.Rows.AutoFit

Range("A1").Select

End Sub

J'ai trouvé dans une autre macro le code suivant:

Rows.RowHeight < 75 Then rRow.RowHeight = 75

Je n'arrive malheureusement pas à l'intégrer dans ma macro pour que cette hauteur minimum soit garantie.

Comment puis-je faire ?

Merci d'avance pour votre soutien.

Willau

Bonjour,

A tester :

Sub HauteurLigneAuto()

    Dim I As Long

    Selection.Rows.AutoFit

    For I = 1 To Selection.Rows.Count
        If Selection.Rows(I).RowHeight < 75 Then Selection.Rows(I).RowHeight = 75
    Next I

    Range("A1").Select

End Sub

Bonjour Willau, bonjour le forum,

Peut-être comme ça :

Sub HauteurLigneAuto()
Dim Li As Range

Selection.EntireRow.Select
Selection.Rows.AutoFit
For Each Li In Selection.Rows
    If Li.RowHeight < 75 Then Li.RowHeight = 75
Next Li
Range("A1").Select
End Sub

[Édition]

Arf. Grillé par Theze (que je salue au passage) une fois de plus...

Theze !

Une fois de plus, un grand merci pour l'aide !

ça marche à merveille

J'ai adapté le code car ma hauteur de 75 correspondait à l'ajustement de la ligne sur la feuille elle-même.

Pour obtenir la même hauteur avec le code j'ai dû adapter avec

If Selection.Rows(I).RowHeight < 45 Then Selection.Rows(I).RowHeight = 45

Merci infiniment pour l'efficacité et la rapidité de réponse.

Willau

Merci ThauThème

Content de t'avoir aidé

Bonjour,

Je suis débutant en VBA. Voici ce qui m'amène.

Je voudrais que dans la feuille de mon classeur, la hauteur des lignes 21 à 55 soit par défaut de 32, mais que si l'utilisateur saisit du texte dans les cellules de ces lignes pour une hauteur supérieure, la hauteur s'ajuste automatiquement lorsqu'il tape "entrée" après sa saisie.

En gros, il faut que la macro qui définisse la hauteur mini de 32 sur ces lignes, et gère l'ajustement automatique au-delà, tourne toute seule sur cette feuille sans demander à l'utilisateur d'activer une macro.

Au départ j'utilisais la commande Rows.AutoFit mais elle ajuste la hauteur de ligne sur une taille inférieure à 32 si le contenu des cellules de la ligne est nul ou faible.

Ma mise en page est alors modifiée, ce qui me pose problème.

J'ai enregistré ça dans un module :

Sub HauteurLigneMini(h As Integer)

ActiveSheet.Unprotect

Dim Ligne As Integer

Worksheets("Formulaire").Rows("21:55").Select

Selection.Rows.AutoFit

For Ligne = 21 To 55 Step 1

Rows(Ligne).Select

If Selection.RowHeight < h Then

Selection.RowHeight = h

End If

Next Ligne

ActiveCell.Select

End Sub

puis j'ai mis "HauteurLigneMini (32)" dans une Sub Worksheet_SelectionChange enregistrée sur la feuille "Formulaire" de MicrosoftExcelObjets.

Mon problème : ça fonctionne tellement bien que ça boucle dès que j'agis sur une cellule de ma feuille "Formulaire".

Mon code pourrait sans doute être amélioré.

Quelqu'un a une idée pour que ça fonctionne de manière "transparente" sans boucler en permanence ?

Merci

Rechercher des sujets similaires à "ajustement automatique ligne hauteur minimum"