Comment bien paramètrer une macro

Résolu/Fermé
will_1234 Messages postés 7 Date d'inscription lundi 2 février 2015 Statut Membre Dernière intervention 18 juillet 2017 - 2 févr. 2015 à 17:00
 will_1234 - 3 févr. 2015 à 21:33
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!
A voir également:

8 réponses

Bonjour

tu a mis en Resolu ?

Voila un modife de ta macro

http://cjoint.com/?3BdvJjf58zh

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

Si tu peux donne un modele de ton fichier car je ne comprend pas tes histoire de flitre
A+
Maurice
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

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