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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Aller directement d'une ligne visible à une autre.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aller directement d'une ligne visible à une autre.

n°2038759
alainli
Posté le 26-11-2010 à 21:46:39  profilanswer
 

Merci Xxxaaavvv pour tes orientations qui m'ont été utiles et m'ont permis d'avancer.
 
Je joins un extrait d'une base de données test que j'ai dans un onglet Excel. Mon tableau est filtré et n'apparaissent à l'écran que les lignes visibles.
Avec ma programmation, le curseur se positionne automatiquement sur la dernière cellule visible de mon tableau (C'est déjà bien !). Mais ensuite, je n'arrive pas à sélectionner directement par programmation la première nouvelle ligne supérieure visible. En effet, les lignes masquées sont lues également ce qui ralentira l'exécution du programme sur un tableau beaucoup plus important.
 
Voici mon extrait de code Vba pour Excel 2003 :
 
Sub SelectionLignesVisiblesUniquement()
 
Dim f As Integer
 
' Retrouve la dernière cellule.
 
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
 
MsgBox "La sélection en cours correspond à : " & ActiveCell.Value, vbInformation
 
    For f = 1 To 31 'Boucles max dans mon tableau.
         
        If ActiveSheet.Rows(ActiveCell.Row).EntireRow.Hidden = False Then  'Ligne non cachée.
            MsgBox "La ligne active " & ActiveCell.Row & " n'est pas cachée !", vbExclamation
            ActiveCell.Offset(-1, 0).Select
                     
        ElseIf ActiveSheet.Rows(ActiveCell.Row).EntireRow.Hidden = True Then
            'MsgBox "Ligne cachée à ne pas lire !" & Chr(10) & "DECALER VERS LE HAUT !"
            ActiveCell.Offset(-1, 0).Select
             
        End If
         
    Next f
     
End
 
Donc, par quel code je dois remplacer :  
selection.offset(-1,0).select
pour que la prochaine ligne visible soit automatiquement sélectionnée, sans le moindre passage des boucles sur mes lignes masquées ?
 
Merci d'avance.
 
 
 
 

mood
Publicité
Posté le 26-11-2010 à 21:46:39  profilanswer
 

n°2039772
seniorpapo​u
Posté le 03-12-2010 à 06:48:19  profilanswer
 

Bonjour,
tu devrais pouvoir t'inspirer de ceci:
 

Code :
  1. Sub celvid()
  2. Application.ScreenUpdating = False
  3. Range("A1", Range("A65536" ).End(xlUp)).Select
  4. 'on place dans un tableau les N° de lignes visibles
  5. Dim Tablo As New Collection, cellule As Range
  6. For Each cellule In Selection.SpecialCells(xlCellTypeVisible)
  7. On Error Resume Next
  8. Tablo.Add cellule.Row, CStr(cellule.Row)
  9. Next
  10. 'on reprend les N° de lignes depuis la fin du tableau
  11. For i = Tablo.Count To 0 Step -1
  12. 'placer ici le traitement désiré et supprimer le msgbox
  13. MsgBox Tablo(i)
  14. Next
  15. Application.ScreenUpdating = True
  16. End Sub


 
 
 
cordialement


Message édité par seniorpapou le 03-12-2010 à 06:52:07
n°2040007
alainli
Posté le 04-12-2010 à 12:04:40  profilanswer
 

Merci seniorpapou
 
Je vais le tester dans mon application. Dès que possible je te dirai si c'est ok.
Cordialement.
A+.

n°2041890
alainli
Posté le 13-12-2010 à 22:08:11  profilanswer
 

Merci infiniment SeniorPapou.
 
Ton orientation est la bonne. J'ai cherché un peu mais j'ai réussi à n'accéder qu'aux données filtrées, dans un temps d'exécution record ! Quand j'ai réussi à coder les bonnes variables, cela a été ok et je n'ai plus qu'à intégrer mon travail dans un code plus volumineux.
Je devrais y arriver.
 
Merci encore pour ta collaboration.
 
Cordialement.


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

  Aller directement d'une ligne visible à une autre.

 

Sujets relatifs
Copier la ligne sélectionnée dans 1 ligne vide d'une autre feuille[C#] Php hors ligne ?
[résolu] Paramètre POST dans une ligne de commande wgetafficher une ligne d'un fichier .txt en C pur
probleme saut de ligne avec scanf[MySQL] choisir la ligne retournée par GROUP BY
Découper un bouton directement sur le design.Application en ligne et USB HID class
[Sqlplus] Taille max d'une ligne en entréeComment rendre visible une image cachée au survol d'un lien ?
Plus de sujets relatifs à : Aller directement d'une ligne visible à une autre.


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