Comment bien paramètrer une macro

Résolu
Bonjour à tous, dans mon classeur excel j'ai ce code qui me permet de faire un résumé de mes articles dans une feuille:

Sub Resume_auto(l As Integer, cl As Integer, rcl As Integer)
Application.ScreenUpdating = False
Dim a As Integer
Dim b As Integer
Dim c As String
Dim d As String
Dim e As String
Dim f As String
b = ActiveSheet.Range("C1") 'Nb donné BD
c = ActiveSheet.Range("J1") 'Nom feuille
d = ActiveSheet.Range("G" & l)
e = ActiveSheet.Range("I" & l)
f = ActiveSheet.Range("K" & l)
Sheets("Banque de données").Select
ActiveSheet.Range("A2:A" & Range("A65536").End(xlUp).Row).AutoFilter Field:=1
ActiveSheet.Range("A2:A" & Range("A65536").End(xlUp).Row).AutoFilter Field:=2
ActiveSheet.Range("A2:A" & Range("A65536").End(xlUp).Row).AutoFilter Field:=3
ActiveSheet.Range("A2:A" & Range("A65536").End(xlUp).Row).AutoFilter Field:=4
Sheets(c).Select

a = ActiveSheet.Range("E" & l) + 2
asom = ActiveSheet.Range("F" & l)
Rows("21:21").Copy
Range("A" & a & ":A" & a).Insert Shift:=xlDown
Sheets("Banque de données").Select
ActiveSheet.Range("$A$2:$D$10000").AutoFilter Field:=4
ActiveSheet.Range("A2:A" & Range("A65536").End(xlUp).Row).AutoFilter Field:=4, Criteria1:=Array( _
d, e, f), Operator:=xlFilterValues
Sheets(c).Select
b = ActiveSheet.Range("C1") 'Nb donné BD
a = ActiveSheet.Range("E" & l) + 2
asom = ActiveSheet.Range("F" & l)

Range("A" & a & ":A" & a + asom - 1).Select
Selection.EntireRow.Delete
Rows(cl).Copy
Range("A" & a & ":A" & a + ([C1])).Insert Shift:=xlDown
Sheets("Banque de données").Select
Range("A2:A" & Range("A65536").End(xlUp).Row).Select
Selection.Copy
Sheets(c).Select
Range("D" & a).Select
ActiveSheet.Paste
Rows(a).Select
Selection.Delete Shift:=xlUp
Range("G" & a).Select
ActiveCell.FormulaLocal = "='Nom feuille'!" & rcl
asom = ActiveSheet.Range("F" & l)
If asom = 1 Then
Range("G" & a).Select
Else
Selection.AutoFill Destination:=Range("G" & a & ":G" & asom + a - 1), Type:=xlFillDefault
End If
Application.ScreenUpdating = True
End Sub

Le code fonctionne bien lorsque j'écris mes variable directement dans le code, mais
le seul hic s'est que ce code doit se répéter à plusieurs reprises, donc je crois qu'en écrivant une procédure comme (Sub Resume_auto(l As Integer, cl As Integer, rcl As Integer)) ci-haut se serait plus simple, mais je n'arrive pas à la faire fonctionner en l'écrivant avec le code suivant :

Sub resume_2()
Resume_auto "2", "21", "B4"
End Sub

j'espère n'avoir pas été trop vague :)

Quelqu'un pourrait-il m'éclairer sur problème ? :)

Merci à tous de votre temps!

8 réponses

  1. Oui c'était dans mes définition de variable ( Integrer, String ) que je m'était planter :P Merci beaucoup de ton temps Maurice c'est très apprécié!

    A+ !
    0
    1. Bonjour

      tu a mis en Resolu ?

      Voila un modife de ta macro

      http://cjoint.com/?3BdvJjf58zh

      A+
      Maurice
      1
      1. http://cjoint.com/?3BdrHGKsT0i
        Pardonne moi je croyais avoir retirer les code .... :P
        0
        1. Bonjour

          voila un nouveau fichier
          car le tien est bloquer avec un mots de passe
          tu refais ta macro sans les filtre qui ne sert a rien pour le moment

          http://cjoint.com/?3BdoPRY2WiY

          A+
          Maurice
          0
          1. Voici mon fichier!
            http://cjoint.com/?3BcvPirdkEn

            J'essai maintenant d'écrire le code mais je n'arrive pas a le faire fonctionner. lorsque je clique sur exécution, le mssage suivant s'ouvre :
            erreur d'exécution ' 13': Incompatibilité de type

            Merci beaucoup de ton aide!
            0
            1. Bonjour

              Si tu peux donne un modele de ton fichier car je ne comprend pas tes histoire de flitre
              A+
              Maurice
              0
              1. Ah je suis vraiment bête !
                Merci Maurice !!
                0
                1. Bonjour

                  tu melange les string avec les Chifre dur

                  Sub resume_2() 
                       Resume_auto 2, 21, "B4" 
                  End Sub 
                  
                  Sub Resume_auto(l As Integer, cl As Integer, rcl As String)
                  
                  End Sub 
                  


                  A+
                  Maurice
                  0