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

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.
 

Azuveus

XLDnaute Nouveau
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.
 

cp4

XLDnaute Barbatruc
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+
 

Azuveus

XLDnaute Nouveau
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

  • Book1.xlsm
    23.6 KB · Affichages: 9

cp4

XLDnaute Barbatruc
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.
 

Discussions similaires

Réponses
6
Affichages
221

Statistiques des forums

Discussions
312 111
Messages
2 085 392
Membres
102 882
dernier inscrit
Sultan94