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

Excel Discussion :

Problème dans le filtre élaboré et le tri dans Excel sur des champs dynamiques


Sujet :

Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 24
    Points
    24
    Par défaut Problème dans le filtre élaboré et le tri dans Excel sur des champs dynamiques
    Bonjour,

    Je viens de créer un fichier Excel avec un filtre élaboré. Lorsque j'éxécute le filtre élaboré par rapport a des données "fixes", cela marche parfaitement. Par contre quand les données évoluent (avec un lien DDE par exemple), le filtre n'agit pas. Quand l'une des données ayant évolué n'appartient plus aux critères établis par le filtre élaborée, elle ne disparait pas comme je le voudrais.

    Je rencontre le même problème pour le tri. Lorsque je trie les numéros d'une colonne par exemple dans l'ordre croissant, et que le nombre dans la première cellule grandit (car dynamique avec le lien DDE), il se peut très bien qu'il devienne plus grand que le nombre suivant, alors que le tri est censé être croissant. Cela devrait le décallé dans la cellule suivant logiquement...

    Auriez-vous une solution a me proposer ?

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Je peux faire une macro peut etre qui permet de rafraichir tout cela... Mais comment puis je lui indiquer de la lancer toutes les deux secondes par exemple ? A moins que quelqu'un ait une meilleur solution ?

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Je trifouille Excel un peu partout et j'ai trouvé ceci sur un site Internet, qui devrait répondre a mon probleme. Mais je ne sais pas ou je dois mettre ce code...
    Si quelqu'un sait?
    Lorsqu'un recalcule est fait sur Excel, cette propriété se déclenche, et je pourrais mettre ma macro pour actualiser la feuille... mais ou dois je mettre ca ?

    Public Event Calculate As DocEvents_CalculateEventHandler
    Visual Basic (Usage) Copy CodeDim instance As Worksheet
    Dim handler As DocEvents_CalculateEventHandler

    AddHandler instance.Calculate, handler


    puis :

    Sub Worksheet1_Calculate() Handles Me.Calculate
    MsgBox(Me.Name & " is being calculated")
    End Sub

    J'essaie de mettre ce code dans les modules d'Excel, mais sans succés. Il me trouve des erreurs de syntaxe, etc...


  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par olosta
    Je peux faire une macro peut etre qui permet de rafraichir tout cela... Mais comment puis je lui indiquer de la lancer toutes les deux secondes par exemple ? A moins que quelqu'un ait une meilleur solution ?
    tiens tu met cela dans un module , en remplaçant le Debug.print par ton code de raffraichissement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Ttesles2s()
     Application.OnTime Now + TimeSerial(0, 0, 2), "Ttesles2s" ' Se rappelle dans maintenant + 2s
     Debug.Print Now ' Affiche date/heur dans fenêtre exécution
     
    End Sub

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par olosta
    Je trifouille Excel un peu partout et j'ai trouvé ceci sur un site Internet, qui devrait répondre a mon probleme. Mais je ne sais pas ou je dois mettre ce code...
    Si quelqu'un sait?
    Lorsqu'un recalcule est fait sur Excel, cette propriété se déclenche, et je pourrais mettre ma macro pour actualiser la feuille... mais ou dois je mettre ca ?

    Public Event Calculate As DocEvents_CalculateEventHandler
    Visual Basic (Usage) Copy CodeDim instance As Worksheet
    Dim handler As DocEvents_CalculateEventHandler

    AddHandler instance.Calculate, handler


    puis :

    Sub Worksheet1_Calculate() Handles Me.Calculate
    MsgBox(Me.Name & " is being calculated")
    End Sub

    J'essaie de mettre ce code dans les modules d'Excel, mais sans succés. Il me trouve des erreurs de syntaxe, etc...

    ? alors moi aussi ...je comprends pas tout.. ces handler et Handles... ?

    sinon la dernére macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheet_Calculate()
    MsgBox (Me.Name & " is being calculated")
    End Sub
    semble être un code à mettre dans le code associé à une feuille, dans l'éditeur VBE (ALT F11) , tu sélection dans l'arborescence de droite la feuille concerné, avec bouton droit de la souris, puis tu utilise les 2 combo box du haut pour choisir worksheet et calculate... ainsi tu crée une macro événemetielle exécuté sur chaque recalcul de la feuille...

    Pour ce qui est des handles et handler... peu être qu'un lien vers le site ou ta trouvé le code m'aiderai à comprendre...

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Ouh la, je viens d'essayer ce que tu m'as donné, et ca tape pil poil dans ce que je veux je crois!!
    Je vais mettre la macro et tout ce qu'il faut demain, je tiendrais au courant des résultats, mais je pense que ca se profile bien...
    Merci d'avance!!

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Hello,

    Pour tenir au courant de ce que j'ai fait, et dont je suis satisfait...
    En fait, la méthode calculate ne me plaisait pas car elle se declenchait tout le temps, et finissait par faire une boucle infini, je ne sais pas pourquoi.... peut etre parceque le lien DDE le mettais à jour en permanence...?
    Donc ce que j'ai fait, j'ai repris la technique de bbil, sur le rafraichissement toutes les 5 secondes, et pour le declencher la première fois pour que la boucle commence, je l'ai mis à l'ouverture...
    En tout cas merci à vous...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/01/2015, 09h27
  2. [XL-97] Déclarer un tableau variable dans un filtre élaboré
    Par monteverest dans le forum Excel
    Réponses: 4
    Dernier message: 20/09/2014, 11h29
  3. Réponses: 3
    Dernier message: 11/02/2009, 08h56
  4. [A07] Tri sur des champs calculé dans un etat
    Par Thierry'' dans le forum IHM
    Réponses: 2
    Dernier message: 02/02/2009, 08h31
  5. [Problème]Nombre et nom des champs dynamiques dans un form
    Par julienOriano dans le forum Struts 1
    Réponses: 17
    Dernier message: 10/04/2007, 15h32

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