Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

simplification de macro

  • Initiateur de la discussion Initiateur de la discussion post prod
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
240
Réponses
2
Affichages
168
Réponses
1
Affichages
345
wDog66
W
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…