Macro excel

Résolu
Bonsoir,

J'utilise les macros suivantes afin d'effectuer automatiquement un filtre avancé pour retrouver plus facilement une information.

Mais ça ne marche pas ? Elles se contentent de m'afficher la feuille ... Je pense avoir oublié quelque chose, mais je ne sais pas quoi.

Si vous avez une idée... Merci d'avance.

Laure

Private Sub CommandButton1_Click()
'pour noter les valeurs à rechercher
Sheets(1).Range("M4").Value = UserForm6.ComboBox1.Value
Sheets(1).Range("N4").Value = UserForm6.TextBox2.Value
Sheets(1).Range("O4").Value = UserForm6.TextBox1.Value
UserForm6.Hide

If Sheets(1).Range("D18").Value = "A" Then
rechercher Feuil2.Range("F2"), Feuil1.Range("M4:O4")
Feuil3.Activate

ElseIf Sheets(1).Range("D18").Value = "B" Then
rechercher Feuil2.Range("H2"), Feuil1.Range("M4:O4")
Feuil5.Activate
End If

End Sub

Sub rechercher(ligne As String, critere As Range)

If Sheets(1).Range("D18").Value = "A" Then
Feuil3.Range("A1:U" + CStr(ligne)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=critere, Unique:=False

ElseIf Sheets(1).Range("D18").Value = "B" Then
Feuil5.Range("A1:R" + CStr(ligne)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=critere, Unique:=False

End If

End Sub

3 réponses

  1. Bonsoir

    Peux-tu mettre un exemple sur http://cijoint.fr/ ?
    0
    1. Bonjour,

      Merci de m'aider.

      Voici un exemple de mon fichier.

      http://www.cijoint.fr/cjlink.php?file=cj201009/cijOkQskth.xls

      L'utilisateur doit sélectionner « Effectuer le Suivi d'un Audit » en D20, afin d'afficher un UserForm, ensuite il doit alors préciser quelques informations afin que le filtre élaboré soit déclenché sur la feuille « Audit AA ».

      Laure
      0
      1. Bonjour,

        Il y a juste quelques petites erreurs d'adressage :

        Private Sub CommandButton1_Click()
        'pour noter les valeurs à rechercher
        Sheets(1).Range("M2").Value = UserForm5.ComboBox1.Value 'service
        Sheets(1).Range("N2").Value = UserForm5.ComboBox2.Value ' type
        Sheets(1).Range("O2").Value = UserForm5.TextBox1.Value ' n°
        Sheets(1).Range("P2").Value = UserForm5.TextBox2.Value ' nom et prénom client
        UserForm5.Hide
        
        If Sheets(1).Range("D18").Value = "AA" Then
            rechercher Feuil2.Range("I2").Value, Feuil1.Range("M1:P2")
            Feuil7.Activate
            
        End If
        
        End Sub
        
        Sub rechercher(ligne As String, critere As Range)
        
        If Sheets(1).Range("D18").Value = "AA" Then
            Feuil7.Range("A3:AF" + CStr(ligne)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=critere, Unique:=False
            
        End If
           
        End Sub


        Cordialement
        Patrice
        0
        1. Ps : je viens de trouver deux erreurs de calcul dans paramètres :
          En I2 mettre =NBVAL('Audit AA'!A:A)+EQUIV("Service";'Audit AA'!A:A;0)-1
          En J2 mettre =NBVAL('Audit AA'!F:F)+EQUIV("Auditeur CSO";'Audit AA'!F:F;0) -1
          0
        2. merci pour la correction de ma macro.

          je ne comprends pas tes formules ci-dessus. pourquoi ajouter equiv?
          0
        3. Parce que la 1ère ligne contenant ton tableau n'est pas la ligne 1
          0
        4. Ah d'accord je vois.
          En fait dans mon vrai fichier j'ai des titres dans les cellules A1 et A2 ma formule me donne donc bien le nombre de ligne non vide.

          Encore merci pour ton aide.

          Elsie
          0
        5. De rien, au plaisir
          0