Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3134 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Code touche clavier Flèche aut - Repérage lignes visibles non filtrée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Code touche clavier Flèche aut - Repérage lignes visibles non filtrée

n°2037785
alainli
Posté le 23-11-2010 à 13:25:05  profilanswer
 

Bonjour à tous.
 
Quelqu'un peut-il me venir en aide sur Vba pour Excel 2003 ?
 
Je travaille sur une très grosse base de données et il s'agit, qu'après filtrage des données, les conditions que je fais tester ne soient pas analysées à chaque ligne mais uniquement et directement sur chaque ligne visible à l'écran. Vous l'avez bien compris, le temps d'exécution est loin d'être le même quand il faut tester 200 lignes (après filtrage des données) ou40.000 lignes.
 
Je pense donc à deux orientations mais j'ai des soucis pour programmer :
 
1) : Si, dans ma Bdd filtrée, je frappe sur la touche clavier "Flèche vers le haut", j'accède directement à la cellule de ma ligne supérieure, même si, par exemple, j'ai entre mes deux lignes visibles 1000 lignes masquées. Mais je ne parviens pas à coder en Vba pour Ecel 2003 cet enfoncement de touche "Flèche vers le haut". Quelqu'un peut-il m'écrire le code exact pour que cette frappe clavier soit reconnue, afin qu'ensuite je puisse y intégrer un nombre de boucles.
 
2) : 2ème orientation possible :
Prenons par exemple une base de données nommée "BDD" et insérons une boucle de 3 passages :  
Je veux accéder directement, par programmation Vba pour Excel 2003, à la dernière ligne visible de ma base de données (pour lecture et traitement de certaines cellules). Puis ensuite, remonter automatiquement vers la prochaine ligne visible pour accomplir la même opération que précédemment, en fonction de la boucle que je définis, SANS PASSER PAR LES LIGNES QUI SONT MASQUEES par le filtre que j'ai mis en place.
 
Mon souci c'est que je n'y parviens pas. En effet, les lignes masquées sont analysées CE QUE JE NE VEUX PAS.
 
Quelqu'un aurait-il le code exact à écrire ?
 
Par avance, je vous remercie de votre coopération.
 
Je compte sur vous et ne doute pas que vous aurez la/les solutions.
 
Alain.
 
 

mood
Publicité
Posté le 23-11-2010 à 13:25:05  profilanswer
 

n°2037880
Xxxaaavvv
Posté le 23-11-2010 à 18:00:50  profilanswer
 

Je vais essayer de répondre cordialement :D
mais tu utilise un vocabulaire énervant... (en tout cas si je comprend le truc)
 

alainli a écrit :

Bonjour à tous.
 
Quelqu'un peut-il me venir en aide sur Vba pour Excel 2003 ?
 
Je travaille sur une très grosse base de données et il s'agit, qu'après filtrage des données, les conditions que je fais tester ne soient pas analysées à chaque ligne mais uniquement et directement sur chaque ligne visible à l'écran. Vous l'avez bien compris, le temps d'exécution est loin d'être le même quand il faut tester 200 lignes (après filtrage des données) ou40.000 lignes.


 
Une base de donnée, c'est Access
Excel, c'est un tableur.
 
donc je suppose que tu parle de filtrer un ongletde classeur pour ne travailler que sur les 200 lignes d'affichées...
 
soit, c'est pas con :o
(mais ça peut être compliqué selon ce que tu veux faire)
 
 

alainli a écrit :


1) : Si, dans ma Bdd filtrée, je frappe sur la touche clavier "Flèche vers le haut", j'accède directement à la cellule de ma ligne supérieure, même si, par exemple, j'ai entre mes deux lignes visibles 1000 lignes masquées. Mais je ne parviens pas à coder en Vba pour Ecel 2003 cet enfoncement de touche "Flèche vers le haut". Quelqu'un peut-il m'écrire le code exact pour que cette frappe clavier soit reconnue, afin qu'ensuite je puisse y intégrer un nombre de boucles.


 
Ce que tu cherche c'est l'évenement qui te permet en VBA de traiter un changement de selection grace aux flèches.
 
celui qui s'en apporche le plus c'est :


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Debug.Print Target.Count & " Cellules sélectionnée, adresse = " & Target.Address(False, False)
End Sub


par contre tu ne pourra pas savoir si c'est avec les fleche ou la souris, que l'utilisateur s'est déplacé.
 
l'objet Target représente la ou les cellules sélectionnées, avec la souris, ou les flèches.
 
a toi de teste s'il y en a plusieurs ou une seule et de quoi faire dans ce cas.
 

alainli a écrit :


2) : 2ème orientation possible :
Prenons par exemple une base de données nommée "BDD" et insérons une boucle de 3 passages :  
Je veux accéder directement, par programmation Vba pour Excel 2003, à la dernière ligne visible de ma base de données (pour lecture et traitement de certaines cellules). Puis ensuite, remonter automatiquement vers la prochaine ligne visible pour accomplir la même opération que précédemment, en fonction de la boucle que je définis, SANS PASSER PAR LES LIGNES QUI SONT MASQUEES par le filtre que j'ai mis en place.


bon c'est pas une BDD,
"insérer une boucle de 3 passage", ça ne veux rien dire :o
 
"programmer une boucle qui fait 3 passages" ça serait mieux.
 
Je te fourni quelques pistes :
 
voila l'objet range qui contient toutes les cellules VISIBLE


ActiveSheet.Cells.SpecialCells(xlCellTypeVisible)


 
voici le boolen qui te dis si une ligne est visible :


Debug.Print ActiveSheet.Rows("1:1" ).EntireRow.Hidden


 
avec ça tu devrais pouvoir travailler que sur les lignes visibles.


Message édité par Xxxaaavvv le 23-11-2010 à 18:02:10

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Code touche clavier Flèche aut - Repérage lignes visibles non filtrée

 

Sujets relatifs
[VBA]Supprimer les lignes identiques rapidement...[RESOLU] Myspace music code
Age - Code calculant la différence entre deux date en lettreAide sur l'execution d'un code en perl
exercice algo "code barre"code source en Cpp
code en c qui lis un fileassocier cellule à un code
documenter du code python 3 avec Sphinx ?Code qui fait crasher excel??
Plus de sujets relatifs à : Code touche clavier Flèche aut - Repérage lignes visibles non filtrée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR