IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème informations dans la barre d'état VBA avec présence de filtres


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 38
    Par défaut Problème informations dans la barre d'état VBA avec présence de filtres
    Bonjour à tous,

    Contexte:

    J'ai un code qui me permet d'obtenir des informations (dans la barre d'état d'excel) d'un point issu d'un nuage de points lorsqu'on passe la souris dessus. Cela marche très bien à condition qu'il n'y est pas de filtres appliqués car en effet si il y en a, cela fausse les données que j'ajoute dans la barre d'état.

    Par exemple si je filtre sur un critère et qu'il ne me reste plus qu'une donnée dans la base (suite à ce filtre), cette donnée sera mise en 2ieme ligne (après la ligne des étiquettes de lignes), or quand il n'y a pas de filtres, cette donnée se situe à la 65ieme ligne.
    Le problème c'est que les informations de la base qui seront dans la barre d'état vont être celles de la PREMIÈRE LIGNE QUAND IL N'Y A PAS DE FILTRE DANS LA BASE ET NON LA PREMIÈRE LIGNE AVEC FILTRE (OU LA 65 ieme LIGNE SANS FILTRE).

    Merci d'avance pour votre aide,

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Pas certain de bien comprendre...
    Est-ce que tu peux mettre le bout de code relié à l'écriture dans la barre d'état ?
    Ça pourrait aider...

    Est-ce que tu utilises SpecialCells(xlCellTypeVisible) ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 38
    Par défaut
    Bonjour parmi,

    Merci d'avoir répondu

    J'avais en effet essayé de joindre le fichier mais jai pa pu à cause de la présence de macros.

    Alors une fois que je trace mon nuage de points j'appelle une procédure:
    Voici le contenu de lien1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim Graph1 As Classe1
     
    Sub lien1()
      Set Graph1 = New Classe1
      Set Graph1.Graph1 = Sheets(3).ChartObjects(1).Chart
    End Sub
    Et voici le contenu du module de classe "Classe1" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Option Explicit
     
    Public WithEvents Graph1 As Chart
     
    Private Sub Graph1_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
     
     Dim ElementID As Long, SeriesIndex As Long, PointIndex As Long
     Dim S As Series, H As Integer, j As Integer, Form As String
     Dim CellX As Range, CellY As Range
     
     Graph1.GetChartElement x, y, ElementID, SeriesIndex, PointIndex
     
     If ElementID = xlSeries Then
         Form = Graph1.SeriesCollection(SeriesIndex).Formula
         H = InStr(1, Form, ",") + 1
         j = InStr(H, Form, ",") + 1
         Set CellX = Range(Mid$(Form, H, j - H - 1))(PointIndex)
         Set CellY = Range(Mid$(Form, j, InStr(j, Form, ",") - j))(PointIndex)
         Application.StatusBar = "REPORT = " & CellX(1, 4) & "         ARTICLE = " & CellX(1, 5) & "         LENGTH = " & CellX(1, 21).Value & " | "
        Else: Application.StatusBar = False
     End If
     
     End Sub
    Voilà donc ce code marche très bien, une fois que lien1 a été exécuté , si on passe la souris sur un point du nuage de points j'ai, dans la barre d'état d'Excel, 3 informations qui font référence au point: REPORT, ARTICLE, LENGTH.

    Mon problème c'est si on applique des filtres dans la base, et qu'on repasse notre souris sur le nuage de points, les 3 informations données sont fausses: elles ne correspondent pas à la ligne à cause du filtre...
    Ça me fait un peu penser au principe que quand en veut appliquer un calcul et qu'on a des filtres: on n'utilise pas =moyenne mais =sous.total(.....) qui ne prend pas en compte les données masquées;
    Le principe est un peu identique ici j'ai l'impression .

    Voila si tu ne vois pas encore vraiment le problème j'essayerai de réexpliquer


    PS: Non je n'utilises pas SpecialCells(xlCellTypeVisible)


    Merci d'avance,

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Est-ce que le filtre a une importance ou s'il peut être enlevé ?
    Pour l'enlever
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("LaFeuilleFiltrée").AutoFilterMode = False
    Sheets("LaFeuilleFiltrée").Rows(LaLigneFiltrée).Autofilter
    à mettre en début de procédure lien1

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 38
    Par défaut
    Re,

    Si malheureusement le filtre est important sinon tout irait bien mais quelqu'un qui utilisera ce fichier excel aura surement besoin de filtrer des données et dans ce cas je veux que les infos dans la barre d'état soient justes et "suivent" la logique du filtre (bonne ligne)

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    J'avais en effet essayé de joindre le fichier mais jai pa pu à cause de la présence de macros.
    Pour joindre un fichier, utilise .xls ou zippe-le
    Assure-toi tout de même que les données ne sont pas confidentielles...

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2008, 12h52
  2. pas d'icône java dans la barre d'état système
    Par Benoit_T dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 12/06/2008, 15h52
  3. adresse mail dans la barre d'état
    Par DiverSIG dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/03/2006, 10h43
  4. Affichage dans la barre d'état
    Par Prue dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 05/07/2005, 12h51
  5. Affichage d'un texte dans la barre d'état!
    Par chuart dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 12/04/2005, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo