XL 2019 Hauteur de ligne vba

netparty

XLDnaute Occasionnel
Bonjour à tous

Est-il possible en vba de changer la hauteur des lignes, je vous explique ce que je souhaite.
Je voudrais placer un bouton + et un bouton - quand je clique sur plus j'augmente la hauteur de la ligne de +10 et quand je clique sur - je diminue ma ligne de -10.

Merci d'avance

Bonne journée
 
Solution
Bonjour Netparty,
Un ex pour augmenter ou diminuer toutes les lignes :
VB:
Sub PlusHaut()
    Cells.RowHeight = Cells.RowHeight + 10
End Sub
Sub PlusBas()
    Cells.RowHeight = Cells.RowHeight - 10
End Sub
A adapter si cela ne concerne que quelques lignes.

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @netparty :), @sylnanu ;)

Un autre code qui tient compte des limites des hauteurs de lignes. On limite la hauteur entre 0 (cachée) et 409 pour ne pas provoquer d'erreur.

Il suffit de sélectionner des cellules (une ou plusieurs) dans les lignes concernées par la modification de la hauteur des lignes puis de cliquer sur un des bouton "flèche".
La modif se fait sur toutes les lignes dont des cellules sont sélectionnées.

Le code est dans module2:
VB:
Sub Rectangle1_Cliquer()
   PlusOuMoins 10
End Sub

Sub Rectangle5_Cliquer()
   PlusOuMoins -10
End Sub

Sub PlusOuMoins(ByVal deltaH)
Dim x, h
   With ActiveSheet
      For Each x In Intersect(.Rows, Selection.EntireRow).Rows
         h = x.RowHeight + deltaH
         If h < 0 Then h = 0
         If h > 409 Then h = 409
         x.RowHeight = h
      Next x
   End With
End Sub
 

Pièces jointes

  • netparty- Hauteur lignes- v1.xlsm
    18.5 KB · Affichages: 10

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour Netparty, sylvanu, mapomme, le forum

Si c'est juste pour le plaisir de polémiquer, alors, pour gérer les lignes masquées ! ;) 😁

Bien cordialement, @+

VB:
Sub PlusHaut()
    If Cells.RowHeight > 0 Then With Cells.SpecialCells(xlCellTypeVisible): .RowHeight = Application.Min(.RowHeight + 10, 409): End With Else Cells.RowHeight = 10
End Sub
Sub PlusBas()
    With Cells.SpecialCells(xlCellTypeVisible): .RowHeight = Application.Max(.RowHeight - 10, 0): End With
End Sub
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
😂 Juste pour le plaisir de polémiquer.
Plus rapide de rester en VBA que de repasser par Excel. Mais c'est juste pour polémiquer en ce samedi matin veille d'élection.

Mais si vous voulez du concis en VBA:
VB:
Sub PlusOuMoins(ByVal deltaH)
Dim x
For Each x In Intersect(Rows, Selection.EntireRow).Rows: x.RowHeight = IIf(x.RowHeight + deltaH < 0, 0, IIf(x.RowHeight + deltaH > 409, 409, x.RowHeight + deltaH)): Next x
End Sub

Et ça répond à la question posée et lève la séance des polémiques, ah ben dis donc ! 😛 😝 🤪 😜

Décidément Ils ont tous décidé de me gâcher cette matinée ensoleillée, même le modo s'y met!

Bonjour @Bernard_XLD 🙂
 

netparty

XLDnaute Occasionnel
Bonjour @netparty :), @sylnanu ;)

Un autre code qui tient compte des limites des hauteurs de lignes. On limite la hauteur entre 0 (cachée) et 409 pour ne pas provoquer d'erreur.

Il suffit de sélectionner des cellules (une ou plusieurs) dans les lignes concernées par la modification de la hauteur des lignes puis de cliquer sur un des bouton "flèche".
La modif se fait sur toutes les lignes dont des cellules sont sélectionnées.

Le code est dans module2:
VB:
Sub Rectangle1_Cliquer()
   PlusOuMoins 10
End Sub

Sub Rectangle5_Cliquer()
   PlusOuMoins -10
End Sub

Sub PlusOuMoins(ByVal deltaH)
Dim x, h
   With ActiveSheet
      For Each x In Intersect(.Rows, Selection.EntireRow).Rows
         h = x.RowHeight + deltaH
         If h < 0 Then h = 0
         If h > 409 Then h = 409
         x.RowHeight = h
      Next x
   End With
End Sub
bonjour @mapomme

Merci pour ton code

Bonne journée
 

Discussions similaires

Réponses
5
Affichages
462
Réponses
2
Affichages
309