Recherche sous VBA

romain.asenjo Messages postés 12 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

je cherche de l'aide pour une VBA que je n'arrive pas à écrire.

Je voudrais faire une recherche selon plusieur critères dans une base de donnée et renvoyer dans un tableau les valeurs voulues.

Je peux fournir l'excel si besoin

Merci de votre aide

9 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Je ne pense pas que tu ai besoin de VBA pour filtrer ta feuille, suffit simplement...
    Feuille Data, insérer une ligne de titre
    Mette un filtre automatique.
    Ca va te permettre de filtrer la feuille comme tu le montre sur Sheet2
    Si vraiment tu veux en VBA fait déjà un début de code avec l'éditeur de macro.
    A+
    0
  2. romain.asenjo Messages postés 12 Statut Membre
     
    Voici un fichier plus élaboré avec un bout de code, mais ca ne fonctionne pas

    https://www.cjoint.com/?BCElf3eEict
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      ta réponse à lermite a disparu...
      eric
      0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour Eric,
    Romain ->
    J'y comprend rien...
    Exécute manuellement une action complète, avec les bons filtres dans les deux fenêtres de saisies et met les résultat attendu dans la fenêtre résultat.
    Ensuite reposte le classeur.

    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    0
  5. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Pour le 1er filtre c'est plus clair.
    Remplace ta Macro "Filtre1" qui ne sert à rien puisqu'une fois que les titres et cadres sont fait, plus besoin de les refaire.
    Sub filtrer1()  
    Dim CritA As String, CritB As String, CritD1 As Long, CritD2 As Long  
        With Sheets("Sheet1")  
            CritA = .[E11]  
            CritB = .[E21]  
            CritD1 = CDate(.[F13]) * 1  
            CritD2 = CDate(.[F17]) * 1  
        End With  
        With Sheets("Assumption").Range("A1:J32") 
            .AutoFilter Field:=2, Criteria1:=CritA  
            .AutoFilter Field:=6, Criteria1:=CritB  
            .AutoFilter Field:=9, Criteria1:= _  
                ">=" & CritD1, Operator:=xlAnd, Criteria2:="<=" & CritD2  
        End With  
    
    End Sub

    A part les filtres sur les dates qui sont un peu plus critique (dans les filtres automatique Excel inverse le mois et l'année en mode US (bug)) tu aurais pu le faire avec l'éditeur de macro.
    Pour la copie des résultats dans la feuille Sheet2 fait déjà avec l'éditeur de macro et reposte pour la mise au point.
    A+
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    0
  6. romain.asenjo Messages postés 12 Statut Membre
     
    Super j'avais pas pensé à raffraichir directement les filtres d'assumption en revanche je ne vois pas comment avec l'éditeur de macro pour rapatrier les infos dans la feuille sheet1 car dans mon exemple simple on a souvent qu'une ligne à amener mais dans le cas ou je vais devoir amener 50 ou 100 ligne, je ne vois pas comment écrire la boucle
    0
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    et bien tu le fais avec une ligne et ont t'aidera pour répercuter au nombre de lignes.
    0