simplification de macro

post prod

XLDnaute Occasionnel
bonjour a tous
j'ai u dossier avec des feuilles pour chaque mois "janv fev mars ect...)et une feuille stat mensuel
j'ai fais une macro par mois pour copier exemple la collonne a1:a20 et c1:c20
dans la feuille de stat
jusque la pas de probleme mais je me retrouve avec 12 macro
y a t'il un moyen de simplifier les choses avec une seule macro et par exemple une casse a cocher dans le mois que l'on veut copier
merci d'avance
 

Modeste

XLDnaute Barbatruc
Re : simplification de macro

Bonjour post prod,

Avec quelque chose comme:

Code:
Sub test()
Dim i As Integer
For [B][COLOR="Red"]i[/COLOR][/B] = 1 To 3
    Sheets([B][COLOR="Red"]i[/COLOR][/B]).Range("A1:A15").Copy Destination:=Sheets("Feuil4").Cells(1, [COLOR="red"][B]i[/B][/COLOR])
Next [B][COLOR="red"]i[/COLOR][/B]
End Sub
et en adaptant à ta situation ... il me semble que ça devrait fonctionner.

Modeste
 

Modeste

XLDnaute Barbatruc
Re : simplification de macro

re-bonjour,

En relisant ton message, après ma première proposition, je m'aperçois que je n'y réponds peut-être pas ... le code proposé recopiait le contenu de chaque feuille dans une colonne différente d'une feuille qui pourrait être ta feuille "stat". Mais comme tu copies 2 plages, ça ne va pas fonctionner.
Comme apparemment, tu souhaites n'envoyer les infos que d'UNE feuille à la fois, je t'ai mis en pièce jointe une autre proposition: une case à cocher dans chaque feuille (avec le code dans chaque feuille) ... c'est simplement l'index de la feuille active qui est envoyé à la procédure (simplifiée) qui est dans le Module.

J'espère ne pas m'être trompé, cette fois !

Modeste
 

Pièces jointes

  • post_prod.xls
    38 KB · Affichages: 53

post prod

XLDnaute Occasionnel
Re : simplification de macro

merci modeste
reste juste une erreur (dut a mon explication)
quand je coche la case j'envoye par exemple a1:a20 et c1:c20 dans la feuille stat
mais ensuite je doit decocher janvier les donner de stat s'efface et je coche fevrier et ainsi de suite
les donner sur la feuille de stat sont toujour sur les meme colonnes
 

Modeste

XLDnaute Barbatruc
Re : simplification de macro

re-bonjour,

Je pars du principe que c'est ma seconde réponse qui était la plus correcte !? Si c'est le cas, dans la partie "Module1" du code, colle ce qui suit, à la place du code original:
Code:
Sub test(f As Integer)
Dim i As Integer
i = f
    Sheets("stats").Range("A1:C20").Clear [B]'pour effacer la plage A1:C20 ... tu modifies en fonction de tes besoins[/B]
    Sheets(i).Range("A1:A15").Copy Destination:=Sheets("stats").Range("A2") 'adapter "A2" à tes besoins: cellule dans laquelle le "collage" débute
End Sub

Dans le fichier, j'avais mis dans le code de la "feuil1" une ligne (en commentaire) qui permettrait de "décocher" la case dès que les données sont collées dans "stats" Si ça te dit, efface l'apostrophe devant la ligne et recopie-la dans le code des autres feuilles.

Modeste
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 502
dernier inscrit
talebafia