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 :

élaborer une macro pour filtrer les données erronées.


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut élaborer une macro pour filtrer les données erronées.
    Bonjour,

    Je dois élaborer une macro permettant d’ouvrir des fichiers de ce type et de filtrer les données erronées.
    valeurs.txt

    Le cahier des charges étant le suivant :
    - Le filtrage doit être 100% automatique (l'utilisateur n'a aucun paramètre à entrer sur la feuille Excel ou dans le code de la Macro) ;
    - la macro doit pouvoir fonctionner avec des fichiers de n'importe quelle taille (nombre de lignes de données variable d'un fichier à l'autre) ;
    - la première donnée peut être erronée ;
    - la dernière donnée peut être erronée ;
    - plusieurs données erronées peuvent se suivre ;
    - le choix du critère permettant de définir une donnée erronée doit être pertinent et commenté dans le code de la Macro ;
    - la macro ne doit supprimer aucune donnée non erronée ;

    J'ai réussi le début de macro qui me fait choisir n'importe quel fichier et me converti mon blocs notes sur Excel, mais la suite je bloque vraiment...
    Je ne comprend pas comment faire une moyenne mobile ou un écart-type (si c'est ça qu'il faut faire ^^).

    J'espère que j'ai été assez clair pour que l'on m'aide.
    J'attends vos réponses avec impatience !

    Cordialement,

  2. #2
    Invité
    Invité(e)
    Par défaut Re :
    Bonsoir GLEN444,

    Je comprends bien que les critères doivent être pertinents mais il me semble que c'est à toi de nous les donner. Je ne vois pas comment t'aider si on ne sait pas ce qu'on cherche. Donc qu'est-ce qui fait qu'une donnée est erronée ?

    Cordialement.
    Jean-Claude

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut
    J'ai réussi le début de macro qui me fait choisir n'importe quel fichier et me converti mon blocs notes sur Excel, mais la suite je bloque vraiment...
    Je ne comprend pas comment faire une moyenne mobile ou un écart-type (si c'est ça qu'il faut faire ^^).
    alors merci de le montrer !
    Cordialement,

    Jijie

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Tous d'abord, merci de vous pencher sur mon problème, je vous en suis très reconnaissante !

    Pour répondre à votre question Jean Claude, c'est que pour moi, les valeurs fausses sont celles qui ne suivent pas la courbe tendance...
    J'ai fais un nuage de points sur Excel de mes valeurs. On voit en effet qu'il y a une tendance et que des valeurs ne suivent pas cette tendance.
    Mais est-ce qu'il y a strictement les valeurs fausses qui ne suivent pas cette tendance?

    mon code pour choisir mon fichier et celui-ci Jijie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub ouvrir_fichier()
        Dim fileToOpen As Variant
        fileToOpen = Application.GetOpenFilename
        If fileToOpen <> False Then
           Workbooks.Open Filename:=fileToOpen
        End If
     
    End Sub

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    Désolé de te démoraliser mais je ne suis pas sûre que ton code pour ouvrir tes fichiers suffise...
    - la macro doit pouvoir fonctionner avec des fichiers de n'importe quelle taille (nombre de lignes de données variable d'un fichier à l'autre) ;
    Excel a un nombre de lignes limité et ton code ne marchera pas pour les fichiers (très) importants!

    De plus, avec ce code, tu as déjà une première interaction avec l'utilisateur et çà ne répond pas à la première ligne de ton cahier des charges!

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour Symone,

    Oui, j'ai vu ça il y a deux heures que ce n'était pas bon, et j'essaie de remanier mon code, mais en vain...
    Le code le plus approprié serait de me faire importer les données de mon bloc note dans ma feuille de calcul, et pas en ouvrir une autre (je viens de comprendre ça ^^)

    J'ai vu sur l'aide de VBA ceci :

    Cet exemple montre comment importer les données de la plage A2 à D5 de la feuille de calcul nommée « mySheet » appartenant au classeur Microsoft Excel nommé « mynums.xls ».

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With myChart.Application
        .FileImport FileName:="C:\mynums.xls", _
            ImportRange:="A2:D5", WorksheetName:="MySheet", _
            OverwriteCells:=False
    End With
    Seulement je bidouille avec ça depuis deux heures, et c'est le néant...
    Dois-je préciser que je suis novice ?? (Je crois que ça s'est remarqué )

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Points : 59
    Points
    59
    Par défaut
    Nan, pas besoin de préciser ;-)

    Par contre, essaie d'utiliser les balises de code dans tes messages, ce sera plus lisible (c'est le bouton "#")...
    Sinon, as-tu lu ce sujet? Il pourra t'aider pour l'ouverture des fichiers...

    ¤ Tous tes fichiers textes sont-ils tous dans le même répertoire?
    Dans ce cas, tu pourrais adapter la macro d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Test()
     
        monfichier = Dir("C:\dossier\*.txt*")
        While monfichier <> ""
            Extraction "C:\dossier\" & monfichier, 65536, vbTab
            monfichier = Dir()
        Wend
     
    End Sub
    Ça te donnerais un classeur par fichier texte répartis sur plusieurs feuilles si besoin. Je te conseil même de t'en servir de macro principale qui appellerais chacune de tes macros afin de traiter un fichier à la fois...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Test()
     
        monfichier = Dir("C:\dossier\*.txt*")
        While monfichier <> ""
            Call Extraction "C:\dossier\" & monfichier, 65536, vbTab
            Call Reperer_Valeurs_Erronnees
            Call Mettre_En_Rouge_Valeurs_Reperees
            Call Signaler_Valeurs_Rouges
            monfichier = Dir()
        Wend
     
    End Sub
    Sinon tu n'as pas vraiment répondu à la question ;
    les valeurs fausses sont celles qui ne suivent pas la courbe tendance...
    C'est un peu vague non?! Tes valeurs tournent autour de 108.25, elles sont fausses à partir d'un écart de combien?

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour ton aide Symone !!

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/05/2014, 14h53
  2. éélaboration d'une macro pour importation de donnée dans excel 2003
    Par wuging dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/09/2010, 08h33
  3. Réponses: 1
    Dernier message: 29/06/2009, 17h06
  4. recherche dans une colonne pour changer les données
    Par cimbra55 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/03/2009, 16h49
  5. Réponses: 2
    Dernier message: 26/05/2008, 16h26

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