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 :

Extraite données depuis tableau variable via Advanced filter


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Par défaut Extraite données depuis tableau variable via Advanced filter
    Bonjour à tous,

    Après plusieurs années sans utiliser VBA, j'ai décidé de m'y remettre recemment et je m'apercois qu'il ne me reste pas grand chose ...

    Voici mon besoin.

    Des tests sont réalisés quotidiennement et les résultats sont ajoutés dans un tableau sur une feuille excel (cf document joint)
    Pour chaque test, en plus des résultats (Force et Ecart), des informations supplémentaire sur le test sont rentrés dans le tableau.
    J'ai donc un tableau avec un nombre de colonne fixe, 8, mais un nombre de ligne variable étant donné que le tableau est complété chaque jour avec de nouvelles valeurs.

    Parmis les informations ajoutées, se trouve un numéro de ligne allant de 1 à 8. Je cherche à extraire pour chaque ligne, le tableau correspondant sur une nouvelle feuille.
    Aprés lecture de plusieurs tutoriels, la fonction Advancedfiltrer semble tout indiquée. Elle fonctionne parfaitement en direct sur mon tableau. Mais je n'arrive pas à l'utiliser sur le tableau variable créer pour stocker mes données !

    Voici ma macro:

    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
    25
    26
    27
    28
    29
    Sub test()
     
    Dim Derlig As Long
    Dim tab_exemple()
    Dim i As Integer
     
    'Calcul de la dernière ligne sur la colonne Decay
    Derlig = Worksheets(1).Range("I4").End(xlDown).Row
     
    'Dimensionnement du tableau de (Derlig -2) lignes et (9-1) colonnes
    ReDim tab_exemple(Derlig - 1, 8)
     
    'Enregistrement des résultats dans le tableau
        For i = 0 To UBound(tab_exemple)
                tab_exemple(i, 0) = Range("A" & i + 1)
                tab_exemple(i, 1) = Range("B" & i + 1)
                tab_exemple(i, 2) = Range("C" & i + 1)
                tab_exemple(i, 3) = Range("D" & i + 1)
                tab_exemple(i, 4) = Range("E" & i + 1)
                tab_exemple(i, 5) = Range("F" & i + 1)
                tab_exemple(i, 6) = Range("G" & i + 1)
                tab_exemple(i, 7) = Range("H" & i + 1)
                tab_exemple(i, 8) = Range("I" & i + 1)
        Next
     
    'Tri avec filtre avancé
    tab_exemple().AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("M1:M2"), CopyToRange:=Range("M3"), Unique:=False
     
    End Sub
    Excel me renvoi un code d'erreur "Qualificateur incorrect" pour la ligne "tab_exemple().AdvancedFilter ... "

    Comme vous le voyez, j'en suis encore au premier essai en effectuant un tri en fonction d'un seul critère et en mettant le tableau sur la même page. J'avais penser par la suite, mettre chaque nouveau tableau dans des tableaux virtuels (8) puis les coller sur des nouvelles feuilles.

    Merci pour votre aide,

    Classeur1.xlsm

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour, bonjour !

    La réponse est pourtant déjà présente dans l'aide VBA interne :
    dans le code placer le curseur texte sur AdvancedFilter puis appuyer sur la touche
    Enfin lire avec quel objet fonctionne donc cette méthode …

    Voilà, voilà !

    ___________________________________________________________________________________________________________
    Je suis Paris, Mogadicio, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Par défaut
    Merci, merci.

    AdvancedFilter ne s'appliquant qu'à des ranges., il n'est donc pas possible de l'appliquer sur une variable tableau ?

    Est ce que ma méthode de raisonnement est bonne concernant mon besoin ? Extraire les données voulus dans différents tableaux virtuels puis les coller dans des feuilles différentes.
    Ou est ce que vous voyez une méthode plus simple ?

    Merci d'avance

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Respecter la règle suivante : penser Excel avant VBA !

    Donc un filtre avancé directement sur une plage de cellules …
    Pour rappel le filtrage avancé et la copie avec ou sans doublon nécessitant une seule ligne de code, y a pas plus simple !

Discussions similaires

  1. [PowerShell] Recupération de données dans une variable depuis Receive-job
    Par Striper dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 07/06/2010, 13h30
  2. Creation Mail depuis Excel avec données de tableau
    Par anopaname dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/03/2010, 22h50
  3. Réponses: 4
    Dernier message: 29/09/2009, 16h00
  4. Exporter des données d'un tableau brut via une liste.
    Par Spyder-ferrari dans le forum Excel
    Réponses: 13
    Dernier message: 15/10/2008, 10h23
  5. [Tableaux] Récupérer variables depuis tableau
    Par bigzpanda dans le forum Langage
    Réponses: 4
    Dernier message: 29/07/2007, 20h38

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