Comment bien paramètrer une macro

Résolu
will_1234 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
 will_1234 -
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. Maurice
     
    Bonjour

    tu a mis en Resolu ?

    Voila un modife de ta macro

    http://cjoint.com/?3BdvJjf58zh

    A+
    Maurice
    1
  2. Maurice
     
    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
  3. will_1234
     
    Ah je suis vraiment bête !
    Merci Maurice !!
    0
  4. Maurice
     
    Bonjour

    Si tu peux donne un modele de ton fichier car je ne comprend pas tes histoire de flitre
    A+
    Maurice
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. will_1234
     
    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
  7. Maurice
     
    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
  8. will_1234
     
    http://cjoint.com/?3BdrHGKsT0i
    Pardonne moi je croyais avoir retirer les code .... :P
    0
  9. will_1234
     
    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