Macros pour se déplacer
Bonjour,
Toujours en quête d'améliorations, je viens vous de mander de l'aide pour pouvoir positionner le curseur à des endroits précis dans une feuille, voire plusieurs feuilles.
A partir de n'importe quelle cellule, comment écrire une instruction équivalente à CTRL+"Flèche bas" ?
(L'idéal étant de la répéter un certain nombre de fois, disons 4 fois de plus, et d 'enchaîner avec un déplacement de 3 cellules vers la droite)
Bonjour Patapin, bonjour le forum,
Peut-être comme ça (à adapter) :
Sub Macro1()
For I = 1 To 5
ActiveCell.End(xlDown).Select
Next I
ActiveCell.Offset(0, 4).Select
End SubMais oui !
Génial, merci ThauTheme mon poteau, ça marche du tonnerre, je n'ai plus qu'à adapter à quelques chiffres près.
Rajout : puis-je demander que cette macro s'effectue sur toutes les feuilles en même temps, et que le curseur revienne se positionner en feuille 1 ?
J'ai à moitié trouvé :
Pour effectuer les mouvements sur toutes les feuilles :
For i = 1 To Worksheets.Count
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 3).Range("A1").Select
ActiveSheet.Next.Select
Next i
End Sub
Je n'ai pas pu utiliser la boucle de ThauTheme, ça ne marchait pas avec l'autre boucle.
Il me reste à trouver comment ramener le curseur automatiquement en première feuille.
EDIT :
ca y est, voici une macro potable :
For i = 1 To Worksheets.Count - 1
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 3).Range("A1").Select
ActiveSheet.Next.Select
Next i
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 3).Range("A1").Select
Sheets(2).Select
End Sub
EDIT et FIN
J'ai compris pourquoi je ne pouvais boucler, je terminais par une mauvaise instruction (boucle trop grande).
Voici la macro finale :
[b]For i = 1 To Worksheets.Count - 1
For j = 1 To 5
Selection.End(xlDown).Select
Next j
ActiveCell.Offset(0, 3).Range("A1").Select
ActiveSheet.Next.Select
Next i
For k = 1 to 5
Selection.End(xlDown).Select
Next k
ActiveCell.Offset(0, 3).Range("A1").Select
Sheets(2).Select
End Sub[/b]