Déplacement de ligne sur des Données filtrées - VB/VBA/VBS - Programmation
Marsh Posté le 04-11-2007 à 07:05:29
Bonjour,
http://www.excelabo.net/excel/filt [...] tionfiltre
Cordialement
Marsh Posté le 04-11-2007 à 09:12:16
Merci SeniorPapou.
Réponse parfaite à ma demande.
Cordialement
Marsh Posté le 03-11-2007 à 09:47:35
Besoin d'aide en VB Excel
Je souhaite, en utilisant un USF, exploiter le résultat de données filtrées avec un filtre automatique.
La base (feuille Excel) comporte environ 30 000 lignes et 60 colonnes (suivi des heures travaillées d'une entreprise de 100 salariés).
L'enregistrement est journalier.
J'ai mis au point un USF permettant de lire et de modifier ces différentes données.
Deux boutons (Précédent et Suivant) ainsi qu'un ScrollBar permettent de passer d'une ligne à une autre.
Le fonctionnement est parfait.
Il suffit de pointer la ligne souhaitée, puis de lancer le formulaire.
Les données relatives à cette personne sont visualisées et/ou modifiables.
Mon Problème :
Il est nécessaire de vérifier les données d'une personne pour plusieurs jours.
Avant de lancer le formulaire, j'ai prévu de filtrer les données (filtre automatique).
Aprés avoir sélectionné la première ligne, l'utilisateur de mon application lance le formulaire (USF).
Le problème : avec les touches Suivant et Précédent on ne passe pas à la ligne suivante filtrée, mais on exploite toutes les lignes, mêmes celles cachées par le filtre.
Exemple : après flitrage les lignes 5,75,145,215 sont visibles.
Après avoir sélectionner la ligne 5, l'appui sur suivant visualise la ligne 6 alors que c'est la 75 qui est attendue.
Ci-dessous les 2 codes permettant de monter et decsendre.
---------------------------------------------------------
Private Sub Precedent_Click()
Ligne = Ligne - 1
If Ligne < 2 Then
Ligne = 2
End If
ScrollBar1.Value = Ligne
ScrollBar1_Change
'Range("A" & Ligne & ":" & "F" & Ligne).Select
Lire_Nouvelle_Ligne
Activer_Affichage_Formulaire
End Sub
---------------------------------------
Private Sub Suivant_Click()
Ligne = Ligne + 1
If Ligne > 65535 Then
Ligne = 65535
End If
ScrollBar1.Value = Ligne
ScrollBar1_Change
'Range("A" & Ligne & ":" & "F" & Ligne).Select
Lire_Nouvelle_Ligne
Activer_Affichage_Formulaire
End Sub
------------------------------------------
Pouvez-vous m'aider. Merci d'avance.
---------------
Oscar