Microsoft 365 Se deplacer en offset dans un tableau avec filtre actif

  • Initiateur de la discussion Initiateur de la discussion Azuveus
  • Date de début Date de début

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 !

Azuveus

XLDnaute Nouveau
Bonjour la communauté,

J'ai créé un tableau dans laquelle j'utilise une Form qui affiche une ligne du tableau en fonction de la ou se trouve mon curseur dans le tableau.
(Pour expliquer, je sélectionne une ligne dans mon tableau et je clique sur mon bouton Macro.) jusque là tout vas bien.

Voici ma problématique du jour :
J'ai ajouter 2 boutons (suivant et précédent) dans la Form ce qui me permet d'afficher la ligne (suivante / précédente) sans devoir sortir de ma fiche. (jusque la tout vas bien)
SAUF que mon tableau possède des filtres et que lorsque je change de ligne avec la macro le curseur se positionne sur des lignes non-visible... problème, çà cause une erreur.

1643706688143.png

je cherche a me déplacer de la ligne 18 à 25 sans que cela crash...

J'ai tester la fonction specialcells(xlcelltypevisible) mais visiblement je n'arrive pas a l'exploiter…
Voici mon code :
VB:
Dim X As Integer
ActiveCell.Offset(rowOffset: = -1).specialcells(xlcelltypevisible).Activate
X = ActiveCell.Row

'---> reste du code....

Pourriez vous me dire comment résoudre...
Guillaume.
 
Solution
Problême résolu 🙂 !!

Il fallait écrire :
VB:
Dim X As Integer

    Dim n As Long: n = 1
    Do Until ActiveCell.Offset(n, 0).Rows.Hidden = False
    n = n + 1
    Loop
    ActiveCell.Offset(n, 0).Select
    X = ActiveCell.Row

Merci 🙂
Bonjour Cp4,
euh... Je ne sais pas comment dois-je le prendre... soit personne ne sait... ou alors j'ai fais nimp et tout le monde rigole... en attendant, je suis autodidacte et donc j'apprends sur le tas, je fais donc beaucoup d'erreurs... mais je ne demande qu'a comprendre.

Merci.
 
Bonjour Cp4,
euh... Je ne sais pas comment dois-je le prendre... soit personne ne sait... ou alors j'ai fais nimp et tout le monde rigole... en attendant, je suis autodidacte et donc j'apprends sur le tas, je fais donc beaucoup d'erreurs... mais je ne demande qu'a comprendre.

Merci.
Bonjour @Azuveus , je suis à l'écoute... En fait, 10 "vus" de plus depuis hier et toujours sans aucune proposition.
Euh... personne ne rigole. La majorité des membres de ce forum sont autodidactes. Tu n'as lu ou pas attentivement lu la charte du forum. Il faudrait joindre ton fichier sans données sensibles ou monter un fichier pour illustrer ton problème.

A+
 
Bonjour,

En résumer, sans fermer la UseForm, je souhaite afficher les informations des lignes précédentes ou suivantes… Jusque la çà va…

Mon problème est qu'il y a un filtre donc mes données, et que du coup, mon control Offset me positionne sur une ligne "caché" et je le ne veux pas afficher.

Comment faire ?

Voir mon fichier en PJ.
Merci d'avance.
Azuveus.
 

Pièces jointes

Problême résolu 🙂 !!

Il fallait écrire :
VB:
Dim X As Integer

    Dim n As Long: n = 1
    Do Until ActiveCell.Offset(n, 0).Rows.Hidden = False
    n = n + 1
    Loop
    ActiveCell.Offset(n, 0).Select
    X = ActiveCell.Row

Merci 🙂
Ne vend pas la peau de l'ours avant de l'avoir abattu.
Personnellement, j'aurai évité de filtrer ma feuille de données mais utilisé une Listbox.
Bonne continuation.
 
- 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

Discussions similaires

Retour