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. Bonjour

    tu a mis en Resolu ?

    Voila un modife de ta macro

    http://cjoint.com/?3BdvJjf58zh

    A+
    Maurice
    1
    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
      1. Ah je suis vraiment bête !
        Merci Maurice !!
        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. 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

              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. http://cjoint.com/?3BdrHGKsT0i
                Pardonne moi je croyais avoir retirer les code .... :P
                0
                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