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