XL 2010 VBA Sendkeys qui se lance sur le mauvais onglet.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

morest38

XLDnaute Nouveau
Salut à tous et merci de prendre le temps de lire ce post.
Voici le code que j'ai. Le but est d'envoyer la consigne, depuis l'onglet B, de descendre d'une cellule sur l'onglet "A" mais l'application ne se rafraîchit pas et la sélection se fait sur l'onglet inital "B"

Code:
Sub OneDown()
Application.ScreenUpdating = False
Sheets("A").Activate
ActiveCell.Activate
SendKeys "{down}"
Sheets("B").Select
Application.ScreenUpdating = True
End Sub

J'aurais pu utiliser offset mais comme j'ai des filtres il n'y a que la flèche qui permet de prendre en compte les lignes cachées.

Merci d'avance pour votre précieuse aide.
 
Salut,
En cherchant sur les forums anglais j'ai trouvé ce code.
Code:
Dim rng As Range
Set rng = Range(Cells(ActiveCell.Row + 1, ActiveCell.Column), Cells(Rows.Count, ActiveCell.Column))
rng.SpecialCells(xlCellTypeVisible).Cells(1).Select
Ca marche parfaitement pour selectionner la cellule visible du dessous mais je n'arrive pas à faire selectionner la cellule visible du dessus au lieu du dessous. En gros comment faire la même chose à l'envers?

Merci encore!
@+
 
Salut,
J'ai essayé Sleep mais il faut importer la fonction donc c'est vraiment pas pratique.
J'ai essayé avec Application.wait mais ça ne marche pas.

Ce code est idéal
Code:
Dim rng As Range
Set rng = Range(Cells(ActiveCell.Row + 1, ActiveCell.Column), Cells(Rows.Count, ActiveCell.Column))
rng.SpecialCells(xlCellTypeVisible).Cells(1).Select
Mais il ne va que vers le bas. Comment faire pour qu'il aille vers le haut?
Merci d'avance.
 
Bonjour morest38, laurent950, Michel, le forum,
Code:
Sub Down()
Dim i&, flag As Boolean
Application.ScreenUpdating = False
Sheets("A").Activate
For i = ActiveCell.Row + 1 To Rows.Count
    If Not Rows(i).Hidden Then ActiveCell(1 + i - ActiveCell.Row).Select: flag = True: Exit For
Next
Sheets("B").Activate
Application.ScreenUpdating = True
If Not flag Then MsgBox "Sélection impossible en feuille A..."
End Sub

Sub Up()
Dim i&, flag As Boolean
Application.ScreenUpdating = False
Sheets("A").Activate
For i = ActiveCell.Row - 1 To 1 Step -1
    If Not Rows(i).Hidden Then ActiveCell(1 + i - ActiveCell.Row).Select: flag = True: Exit For
Next
Sheets("B").Activate
Application.ScreenUpdating = True
If Not flag Then MsgBox "Sélection impossible en feuille A..."
End Sub
Bonne journée.
 
Re,

Avec une macro paramétrée :
Code:
Sub Choix()
Selectionner MsgBox("""Oui"" pour sélectionner vers le bas, ""Non"" pour sélectionner vers le haut", 4, "En feuille A") = 6
End Sub


Sub Selectionner(down As Boolean)
Dim i&, flag As Boolean
Application.ScreenUpdating = False
Sheets("A").Activate
For i = ActiveCell.Row + IIf(down, 1, -1) To IIf(down, Rows.Count, 1) Step IIf(down, 1, -1)
    If Not Rows(i).Hidden Then ActiveCell(1 + i - ActiveCell.Row).Select: flag = True: Exit For
Next
Sheets("B").Activate
Application.ScreenUpdating = True
If Not flag Then MsgBox "Sélection impossible en feuille A..."
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour