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 :

Extraire des données en filtrant


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Janvier 2013
    Messages : 88
    Par défaut Extraire des données en filtrant
    Bonjour à tous,

    J'aimerai faire une macro assez simple.

    j'ouvre mon fichier nommé "Fich1" et worksheets ("feuil1")
    et j'appelle un fichier à l'aide de cette macro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim str As String
     
    'Open the directory to be able to find the correct report
    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = "C:\"
        .Show
        'and select the report on which you click
        If .SelectedItems.Count > 0 Then Workbooks.Open (.SelectedItems(1))
    End With
     
    str = ActiveWorkbook.Name
    ensuite

    with workbook(str).worksheets("ptf")

    j aimerai copier toute la base et la coller sur ma feuille ("feuil1") EN METTANT DES FILTRES.

    par ex: -si Colonne (2) il y a "fr" ou "it" ou "esp" ET si Colonne (12) y a marqué "ABC" ou "IJK" ET si Colonne (24) y a marqué "1933" ou "2012"

    ALORS

    Copier toute la feuille (avec les filtres cité en haut) et la coller dans mon fichier ("fich1") et nommer la feuille (Feuille act).

    Je vous remercie par avance pour votre précieuse aide.

    Bien cordialement

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ce que tu décris là peut-être résolu par les filtres élaborés d'excel que tu peux parfaitement utiliser avec la méthode AdvancedFilter de l'objet Range.
    Je te conseille la lecture de ce tutoriel Les filtres avancés ou élaborés dans Excel. Il y a un classeur téléchargeable avec des exemples et une procédure VBA.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Janvier 2013
    Messages : 88
    Par défaut
    Oui mais je veux automatiser l action grâce a vba

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,

    Et bien c'est possible et si tu lis le tuto et que tu télécharges le classeur, tu verras une procédure VBA qui permet d'automatiser l'exportation avec plusieurs filtres et plusieurs destinations.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bonjour,
    Tu peux meme integrer dans ta macro des inputbox qui te permettront de choisir ce que tu veux extraire.
    Si tu ne sais pas les integrer, n'hésites pas à demander de l'aide, je te répondrais.

    Cordialement
    Graphikris

  6. #6
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Janvier 2013
    Messages : 88
    Par défaut
    Bonjour, le tutoriel n a pas vraiment repondu à ma question.

    Je veux rentrer mes filtres à la main et pas les chercher dans une cellule

    Bonjour ma question est comment peut on definir le critère à la main.

    ex: si colonne(12)= "FR" ou "IT" ou "ESP" ET si colonne (20)="DCD" ou "FIN"

    merci par avance pour votre réponse

    Bonjour, j'ai posté une question similaire avant.
    Toutefois, je reformule car je pense m'etre mal fait comprendre.

    Par avance, merci pour votre aide.

    Contexte:

    J'ouvre mon fichier "Fichier 1", onglet "feuil1".
    Ce fichier est vide, il ne contient que ma macro.

    ensuite j'appelle mon fichier d'ou sont mes données grace à la macro suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim str As String
     
    'Open the directory to be able to find the correct report
    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = "C:\"
        .Show
        'and select the report on which you click
        If .SelectedItems.Count > 0 Then Workbooks.Open (.SelectedItems(1))
    End With
     
    str = ActiveWorkbook.Name
    ensuite avec ce fichier,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    with workbooks(str).worksheets("Ptf")
    je veux filtrer de la facon suivante:

    Si colonne (12) = "DCD" ou "IJK"
    ET
    si colonne(15)="123" ou "234"
    ET
    si colonne(20)="A vendre" ou "A ceder"

    Alors copier toute la base(filtré) et la coller dans mon fichier d'origine (fichier vide du départ qui ne contient que la macro).

    Merci par avance pour tout votre aide.

    bien cordialement,

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Un tutoriel ne peut pas répondre à 100% à ce que l'on cherche mais donne des pistes.
    Si j'ai bien compris tu cherches à importer des données d'une liste de données se trouvant dans une feuille d'un classeur que tu sélectionnes avec le code que tu as affiché et ce suivant certains critères.
    Le filtre avancé ou élaboré d'excel permet de faire cette importation.
    Le filtre a besoin de 3 zones.
    1) La zone des données (la liste de données de la feuille du classeur précité)
    2) Une zone de critères (qui peut se trouver sur le classeur où se trouve le code VBA et que tu peux alimenter soit à la main, soit avec une boîte de dialogue qui va lire le classeur dont on parle dans le point 1 et qui avec un ou plusieurs ListBox ou ComboBox peut ou peuvent remplir la zone de critères
    3) La zone d'exportation.
    Une fois ces trois zones définies, il suffit de lancer le filtre avancé avec la méthode AdvancedFilter en lui passant comme arguments les deux zones (Critères et Exportation), la zone des data étant l'objet Range de la méthode AdvancedFilter
    Soit par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DataReference.AdvancedFilter xlFilterCopy, criteriaRange:=rngCriteria, copytorange:=rngTo
    DataReference est l'objet range qui est la zone des données.

    Il y a un exemple qui se trouve dans le classeur qui illustre le tuto avec des zones d'importations et des zones de critères différentes mais sur le même classeur pour la facilité de l'illustration.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [Système] Extraire des données d'une page web
    Par nazoreen dans le forum Langage
    Réponses: 17
    Dernier message: 22/03/2006, 21h38
  2. Extraire des donnés d'un fichier texte
    Par sadsad dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2006, 15h09
  3. Réponses: 7
    Dernier message: 29/09/2005, 10h19
  4. Réponses: 1
    Dernier message: 28/09/2005, 15h35
  5. extraire des données d'un code HTML
    Par blueice dans le forum Langage
    Réponses: 5
    Dernier message: 19/08/2004, 19h41

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