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.
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,
Il y a peut être plus simple dans ce cas :
VB:
Sub PlusHaut()
Cells.RowHeight = Application.Min(Cells.RowHeight + 10, 409)
End Sub
Sub PlusBas()
Cells.RowHeight = Application.Max(Cells.RowHeight - 10, 0)
End Sub
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
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!
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