Descendre ou monter les lignes avec le même pas
Bonjour
je voudrais faire une macro en VBA avec 3 boutons un de descente l autre de Monter et le dernier pour revenir à la position de départ
monter et descente auront un pas de 43
j ai mon volet figé a la ligne 11 donc mon départ initial est la ligne 12
Exemple si je suis en ligne 12 je veux en cliquant sur mon bouton descente , me retrouver en ligne 55 si je clique a nouveau je me retrouve en ligne 98 ainsi de suite jusqu en bas du classeur
si je clique sur Monter je veux pouvoir remonter de 43 lignes a partir de l'emplacement ou je suis ,exemple si je suis en ligne 98 je me retrouverais en ligne 55....etc
si je clique sur mon 3eme bouton, je veux pouvoir me retrouver a la position initiale en ligne 12 quelque soit la ligne ou je me trouve
Je ne suis pas programmeur je faits appel pour savoir si une personne peut m 'aider
Merci a tous
bonjour,
une proposition, codes à copier dans un module, et à associer à des boutons
Sub plus43()
r = Selection.Row + 43
Cells(r, 1).Activate
ActiveWindow.ScrollRow = ActiveCell.Row
End Sub
Sub ligne12()
Cells(12, 1).Activate
ActiveWindow.ScrollRow = ActiveCell.Row
End Sub
Sub moins43()
r = Selection.Row - 43
If r < 12 Then r = 12
Cells(r, 1).Activate
ActiveWindow.ScrollRow = ActiveCell.Row
End SubBonjour
Grand merci de ton travail je viens d 'essayer tes codes cela marche mais que si je le met dans une autre feuille à part, par contre si je le mets sur la feuille ou j ai déjà un autre code j ai des contrariétés peux tu m 'expliquer ce que je ne fait pas correctement??
je pense qu il doit falloir le mettre a un emplacement spécifique
autre chose comme je ne connais pas la programmation j ai fait pas mal de macro avec l 'enregistreur qui ne me satisfont pas accepteras tu de m 'aider a résoudre quelques soucis que j ai? , parceque j 'aime bien les choses faites à la perfection.
nul doute que tu as trouvé la bonne solution , c'est moi qui ne sait pas comment m y prendre pour que ces macros ne soient pas en contradiction je te mets la macro qui est déjà dans la feuille et qui ne demande pas exactement la même chose ,elle me sert a rapatrier des informations a des emplacements bien précis
encore merci
Option Explicit
Private Sub CommandButton1_Click()
Rows("12:3624").Hidden = False 'retour à la ligne 12 visible
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Lig As Byte, Col As Byte, Dep As Integer, Pas As Byte 'initialisations
Dim Fin As Integer, Lignes As String 'actions
If Not Application.Intersect(Target, Range("CV12:CV51,CX12:CX51")) Is Nothing Then
'-----------------------initialisations
Lig = Target.Row
Col = Target.Column ' 100=CV; 102=CX
Dep = IIf(Col = 100, 227, 270)
Pas = 86
'-----------------------actions
Fin = Dep + Pas * (Lig - 12) - 1 'si lig=12 Fin =226 ou 269
Lignes = 12 & ":" & Fin
Rows(Lignes).Hidden = True '1° ligne visible 227 ou 270
End If
End Sub