1 pièce(s) jointe(s)
Déplacement d'un shape à l'aide d'un scroll bar
Bonjour la communauté,
Je me tourne vers vous car je bute sur un bête problème de déplacement d'une forme (ligne) sur une feuille comportant des lignes cachées.
Je réussi bien à faire passer la forme d'une cellule non cachée à la prochaine cellule non cachée dans le sens montant, mais ça ne marche pas correctement dans l'autre sens car selon comment je tourne mon code, soit ma forme reste bloquée sur sa ligne, soit elle saute 2 lignes.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Sub test5(Lev As Byte)
With ActiveSheet
Dim Ligne As Integer
Dim Multi As Integer
Dim Cell As Range
If Lev > .Range("e1").Value Then Multi = 1 Else Multi = -1
With .Shapes("SautPage")
.Top = .TopLeftCell.Offset(Multi, 0).Top
Set Cell = .TopLeftCell
End With
If Cell.EntireRow.Hidden = True Then
Ligne = Cell.Row
Do Until Cell.EntireRow.Hidden = False
Ligne = Ligne + Multi
Set Cell = Cell.Offset(Multi, 0)
Loop
If Multi > 0 Then
Ligne = Ligne + 1 'c'est là le problème : si je conserve Ligne à sa valeur, la forme "SautPage" ne bouge pas. Avec +1, elle saute une ligne
Else
Ligne = Ligne + 2 'je ne comprends pas bien pourquoi 2, mais enfin ça marche avec cette valeur
End If
.Shapes("SautPage").Top = Cells(Ligne, 1).Top
End If
.Range("e1").Value = Lev
End With
End Sub |
Je joints un fichier exemple.
Ma forme (ligne) sert à visualiser un saut de page sur ma feuille. Ce saut de page est réglable par le scrollbar. Une flèche visualise une limite qui sert de référence pour la position initiale de la ligne.
Le bouton RAZ permet de remettre la forme dans sa position initiale.
D'avance merci à ceux qui pourront m'aider.