Sélection en VBA sur Excel

Bonjour,
je souhaite réaliser un "petit programme" sur excel (2007) qui me permet en cliquant sur un bouton et en fonction du choix prit dans une liste déroulante afficher les lignes correspondantes au critère dans une autre feuille.... j'ai réussi une macro qui bascule des données sur une feuille mais pas à assoicier la liste...je suis débutant en VBA et je rame...
merci de votre aide.
Configuration: Windows Vista / Internet Explorer 7.0

9 réponses

  1. Contributeur
    Bonsoir,

    Tu tiens absolument à copier sur une 2nde feuille ?
    Si ce n'est que pour consulter filtrer sur ta feuille d'origine est plus simple.
    eric
    1. Bonsoir, merci de ton intéret, oui je souhaites copier sur une autre feuille car pour résumer et etre précis:
      la premiere feuille permet de renseigner des critères (date, nom, et action); les actions (2 a sélectionner) vont servir à sélectionner un certain nombre de lignes parmis une quantité qui peut être évolutive, ces lignes comportes des listes déroulantes de choix et en fonction des choix cela donne une cotation, ensuite de la cotation on effectue un extrait (ça je sais faire) mon probème est de creer le programme qui à partir des 2 choix me donne les lignes qui correspondes.. j'espère que je suis claire

      Salutations
      1. Contributeur
        Bonsoir,

        wow, tu t'es laché...
        Mais je n'ai pas tout compris.
        Dépose un fichier exemple avec ce que tu désires obtenir sur l'autre feuille sur cijoint.fr et colle ici le lien fourni.
        eric
        1. Salut, bon j'ai fait un fichier qui résume ce que je souhaite.....merci pour l'aide

          http://www.cijoint.fr/cjlink.php?file=cj201003/cijyM4gUaW.xlsx

          freddy
      2. Contributeur
        Et tu ne peux pas mettre 'A B' et 'z e r t y' dans 2 colonnes respectives ?
        Là ça complique beaucoup pour pas grand chose...
        eric
        1. l'option de plusieurs colonnes me semble le plus simple pur qu'une ligne répond à plusieurs critères, mais si cela marche sur 2 colonnes pourquoi pas...par contre il faut absolument que les lignes répondent aux divers critères.
          par exemple: si le choix et A et e --> ligne 8 mais aussi si c'est A et y....;

          A et B sont des phases d'activité et e,y,.... des domaines d'activité et les renseignements concernes parfois plusieurs domaines mais aussi les 2 phases; le but est de ne voir apparaitre que les lignes correspondant au choix de la phase et du domaine sélectionné donc 1 critère de part et d'autre. soit A et e........

          fred
      3. Contributeur
        il y a toujours 1 seule possibilité entre A et B et entre z e r t y ou il peut y avoir plusieurs de marquées (z et e sur la même ligne par exemple) ?

        Et tu parlais dans le post initial d'une autre feuille... Sur ton exemple tout est sur 1 feuille.
        Plus c'est éloigné de la réalité plus tu auras d'adaptations à faire....
        eric
        1. oui au final il n'yaura qu'1 choix A ou B et ensuite r ou y.... oui tout est sur la m^me page car cette page contient les lignes à copier en fonction du choix et dans la nouvelle page des colonnes avec d'autres infos...
      4. Contributeur
        Bonsoir,

        Regarde si ça te va : fr.xls
        Supprimer un des critère en K2:K3 supprime le filtre.

        eric
        1. Salut Eric, merci pour l'aide apportée, j'ai regardé et ça correspond à ce que j'ai besoin...je bascule cela sur le fichier d'origine et te confirme le résultat.
          encore merci c'est vraiment sympa
          fred
        2. @frBonsoir eric, j'ai testé mais sur mon fichier ça bloque sur cette ligne
          If Not ([Critere1] = "" Or [Critere2] = "") Then: le message est "Incompatibilité de type"

          Voici ce que tu as réalisé avec mes "modifs" cellules, lignes, colonnes...) si j'ai pas commis d'erreur.je sais que le plus simple serais de réaliser cela avec le fichier d'origine mais il est confidentiel.... par contre je place un fichier le plus proche possible....CF MESSAGE QUI SUIT.

          encore merci pour ton aide

          Sub filtre()
          Dim derlig As Long, ok As Boolean, i As Long, j As Long
          derlig = [A65536].End(xlUp).Row
          Range("A16:A65536").Rows.Hidden = False
          If [B65536].End(xlUp).Row > derlig Then derlig = [B65536].End(xlUp).Row
          'Application.ScreenUpdating = False
          If Not ([Critere1] = "" Or [Critere2] = "") Then
          For i = 16 To derlig
          'Rows(i).Hidden = True
          ok = False
          If Cells(i, 1) = [Critere1] Or Cells(i, 2) = [Critere1] Then
          For j = 3 To 7
          If Cells(i, j) = [Critere2] Then
          ok = True
          Exit For
          End If
          Next
          End If
          If Not ok Then Rows(i).Hidden = True
          Next i
          End If
          Application.ScreenUpdating = True
          End Sub
        3. @frEric, voici le fichier........

          http://www.cijoint.fr/cjlink.php?file=cj201003/cijrXpqc8Q.xlsx

          Fred
      5. Contributeur
        Bonsoir,

        enregistre-le au format .xls, les macros ne passent pas.
        Et donne un exemple de saisie où ça plante.
        eric
        1. Bonjour,
          dès queje change le 1er critère ça plante........

          voici le .xls
          http://www.cijoint.fr/cjlink.php?file=cj201003/cijm9dKBgG.xls

          merci
      6. Contributeur
        Bonjour,

        Il n'y avait pas de macro dans le fichier....
        Il faut en plus nommer les cellules J4 et J5 'Critere1' et 'Critere2'
        fr2.xls

        eric
        1. ça marche !!!! génial encore merci pour ton aide, c'est vraiment sympa !parfait, il me reste plus qu'a comprendre la démarche...
          fred