J’ai 3 objets qui se déplacent automatiquement sur la feuille et qui sont
toujours sur la première et deuxième ligne.
Le premier objet permet un retour rapide à un menu les deux autres sont des
flèches auquel j’ai affecté les macros « BAS » et HAUT
Comment modifier la macro HAUT pour que la macro haut ne se plante pas
lorsque l’on est presque en haut de la feuille.
Les 3 macros sont :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rg As Range
Set rg = Range(ActiveWindow.VisibleRange.Address).Offset(1)
Image2Row = rg.Row
ActiveSheet.Shapes("Image 2").Left = rg.Left
ActiveSheet.Shapes("Image 2").Top = rg.Top
Set rg = Range(ActiveWindow.VisibleRange.Address).Offset(1, 5)
ActiveSheet.Shapes("Trait 4").Left = rg.Left
ActiveSheet.Shapes("Trait 4").Top = rg.Top
Set rg = Range(ActiveWindow.VisibleRange.Address).Offset(0, 5)
ActiveSheet.Shapes("Trait 5").Left = rg.Left
ActiveSheet.Shapes("Trait 5").Top = rg.Top
'Set rg = Nothing
End Sub
Sub BAS()
Dim r As Long
With ActiveWindow
r = .ActiveCell.Row - .VisibleRange.Row
.LargeScroll Down:=1
Cells(.VisibleRange.Row + r, .ActiveCell.Column).Select
End With
End Sub
Sub HAUT()
Dim r As Long
With ActiveWindow
r = .ActiveCell.Row - .VisibleRange.Row
.LargeScroll up:=1
Cells(.VisibleRange.Row - r, .ActiveCell.Column).Select
End With
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Modeste
Bonsour® Jean-Paul V wrote:
Comment modifier la macro HAUT pour que la macro haut ne se plante pas lorsque l'on est presque en haut de la feuille.
comme ceci ;o))) Sub HAUT() Dim r As Long With ActiveWindow r = .ActiveCell.Row - .VisibleRange.Row .LargeScroll up:=1 Cells(Application.Max(1, .VisibleRange.Row - r), .ActiveCell.Column).Select End With End Sub
@+
Bonsour®
Jean-Paul V wrote:
Comment modifier la macro HAUT pour que la macro haut ne se plante pas
lorsque l'on est presque en haut de la feuille.
comme ceci ;o)))
Sub HAUT()
Dim r As Long
With ActiveWindow
r = .ActiveCell.Row - .VisibleRange.Row
.LargeScroll up:=1
Cells(Application.Max(1, .VisibleRange.Row - r),
.ActiveCell.Column).Select
End With
End Sub
Comment modifier la macro HAUT pour que la macro haut ne se plante pas lorsque l'on est presque en haut de la feuille.
comme ceci ;o))) Sub HAUT() Dim r As Long With ActiveWindow r = .ActiveCell.Row - .VisibleRange.Row .LargeScroll up:=1 Cells(Application.Max(1, .VisibleRange.Row - r), .ActiveCell.Column).Select End With End Sub
@+
abcd
un moyen assez rapide d'éviter des tests ou des calculs (et d'accélé rer le code, mais ici ce n'est pas trop le problème pour une seule action) est d'ignorer les erreurs
on error resume next le code à problème (sans aucune modif) on error goto 0 'éventuel, pour stopper aux prochaines erreurs
ainsi s'il est impossible de sélectionner la cellule pour une raison ou une autre, le code ne plante pas. (l'action n'est pas réalisée, bi en sûr)
un moyen assez rapide d'éviter des tests ou des calculs (et d'accélé rer
le code, mais ici ce n'est pas trop le problème pour une seule action)
est d'ignorer les erreurs
on error resume next
le code à problème (sans aucune modif)
on error goto 0 'éventuel, pour stopper aux prochaines erreurs
ainsi s'il est impossible de sélectionner la cellule pour une raison
ou une autre, le code ne plante pas. (l'action n'est pas réalisée, bi en sûr)
un moyen assez rapide d'éviter des tests ou des calculs (et d'accélé rer le code, mais ici ce n'est pas trop le problème pour une seule action) est d'ignorer les erreurs
on error resume next le code à problème (sans aucune modif) on error goto 0 'éventuel, pour stopper aux prochaines erreurs
ainsi s'il est impossible de sélectionner la cellule pour une raison ou une autre, le code ne plante pas. (l'action n'est pas réalisée, bi en sûr)