Macro extraction de données avec critères

Bonjour je suis neophyte sur excel et je sollicite votre aide pour une macro. J'ai une macro sur un boutton de commande (issu du userform formulaire d'extraction des données ) pour extraire des données d'un tableau à partir d'un critère : EnsembleSup. J'ai une liste d'ensemble sup (correspondant aux différents types d'ensemble sup dans mon tableau excel) et avec une liste déroulante je sélectionne cet ensemble sup.

capture1

Voici le code pour la macro d'extraction:

Sub btnExtraction_Click()

    'Déclaration des Variables'
    Dim MonEnsembleSup As Range
    Dim ListeEnsembleSup As Range
    Dim NbLignes As Long
    Dim LigneActive As Long

    'Affectation des variables'
    Set ListeEnsembleSup = Feuil11.Range("A2", "A500")
    NbLignes = ListeEnsembleSup.Rows.Count
    LigneActive = 0

    'On insere dans une nouvelle feuille'
    Sheets.Add
    Feuil11.Range("A1").EntireRow.Copy ActiveCell
    Range("A2").Select

    'On boucle chaque ensemble sup se trouvant dans la liste'
    For Each MonEnsembleSup In ListeEnsembleSup

        'On se décale d'une ligne vers le bas'
        LigneActive = LigneActive + 1
        'On recherche l'ensemble sup qui a été saisie dans la liste déroulante'
        If MonEnsembleSup.Offset(0, 3).Value = Me.cboEnsembleSup.Value Then
            'Si l'ensemblesup est trouvée, on récupère'
            MonEnsembleSup.EntireRow.Copy ActiveCell
            ActiveCell.Offset(1, 0).Select
        End If

    Next MonEnsembleSup

End Sub

Ce code marche mais je voulais le faire évoluer afin d'avoir deux critères : Version et EnsembleSup

capture2
Sub btnExtraction_Click()

'Déclaration des Variables'
    Dim MaVersion As Range
    Dim ListeVersion As Range

    Dim MonEnsembleSup As Range
    Dim ListeEnsembleSup As Range

    Dim NbLignes As Long
    Dim LigneActive As Long

    'Affectation des variables'
    Set ListeVersion = Feuil11.Range("A2", "A500")

    Set ListeEnsembleSup = Feuil11.Range("A2", "A500")
    NbLignes = ListeEnsembleSup.Rows.Count
    LigneActive = 0

    'On insere dans une nouvelle feuille'
    Sheets.Add
    Feuil11.Range("A1").EntireRow.Copy ActiveCell
    Range("A2").Select

    'On boucle chaque ensemble sup se trouvant dans la liste'
    For Each MonEnsembleSup In ListeEnsembleSup
       'On se décale d'une ligne vers le bas'
        LigneActive = LigneActive + 1

        'On boucle chaque version se trouvant dans la liste'
        For Each MaVersion In ListeVersion

            'On recherche l'ensemble sup qui a été saisie dans la liste déroulante'
            If MonEnsembleSup.Offset(0, 3).Value = Me.cboEnsembleSup.Value Then

                'On recherche la version qui a été saisie dans la liste déroulante'
                If MaVersion.Offset(0, 7).Value = Me.cboVersion.Value Then

                    'Si l'ensemblesup est trouvée, on récupère'

                    MonEnsembleSup.EntireRow.Copy ActiveCell
                    ActiveCell.Offset(1, 0).Select
                End If

            End If
       Next MaVersion
    Next MonEnsembleSup

End Sub

Lorsque j'exécute ce code, la macro tourne à l'infinie et les critères ne sont pas respectés. Je sollicite votre aide afin de corriger ma boucle et plus s'il le faut.

Bonjour ah213 et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment

  • Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).

Merci de votre participation

Cordialement

Bonsoir,

A vous lire il y a deux types de données dans une même colonne ?

@ bientôt

LouReeD

Bonjour, merci pour vos réponses. C'est noté.

Pour les données je ne pourrais vous répondre je ne sais pas. J'ai finalement opté pour l'utilisation de filtre avancés pour l'extraction de données selon des critères.

Bonsoir,

merci pour le retour, ceci nous évite de continuer à chercher et à se poser trop de question !

@ bientôt

LouReeD

Rechercher des sujets similaires à "macro extraction donnees criteres"