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

Macro trop longue et répétitive!

  • Initiateur de la discussion Initiateur de la discussion _Sasha_
  • 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 !

_Sasha_

XLDnaute Nouveau
Bonjour,

J'aurais besoin de l'expertise de certains VBAistes pour ma macro. Comme le titre l'indique, j'ai fait une macro qui fonctionne très bien, mais qui est énormément répétitive et trop longue. Je sais que l'on peut probablement faire une boucle pour mes feuilles "1" à "52" (mes autres feuilles sur mon classeur ne doivent pas être affectées) et utiliser une instruction quelconque pour mes cellules de référence (ils font un pas de 10 lignes entre chaque ligne). Je commence seulement à faire des macros, alors rendu là, je ne sais pas comment faire...

Je vous joint le script de ma macro afin de vous aider,

Merci d'avance,
 
Dernière édition:
Re : Macro trop longue et répétitive!


Tout d'abord, merci pour votre aide!

J'ai toutefois de la misère à voir comment je pourrais faire mon compteur.

Il faut que je parte avec les références de ma Sheets("1") et que par la suite, j'ajoute 10.

Toutefois, peut-être que tu pourrais m'aider autrement. Il y a une formule simple qui pourrait s'appliquer à toutes mes feuilles. Par exemple, si ma feuille est "1", pour la Range("I7" et"I8"), mon R = 10 * i - 8 ---> ce qui donne 2, pour la feuille "2" = 10 * 2 - 8 = 12 (mon incrément de 10!) et si tu fais ça pour mes 52 feuilles, mon R[] serait toujours bon. Pour la Range("I13" et "I14"), mon premier R[] = 10 * i - 17 et mon deuxième R[] = 10 * i -11 dans ma formule.

Je ne sais pas si je suis claire, mais peut-etre pour mieux l'illustrer, je peux vous montrer ce que je tente de faire (mais ça ne marche pas!):

Range("I7").FormulaR1C1 = "='[" & Fichier & "]Rapport hebdo'!R[" & 10 * i - 8 & "]C[-5]"

Merci encore,
 
Re : Macro trop longue et répétitive!

Bonjour à tous,

@Jam🙂, pas de soucis. C'est plutôt à moi à te présenter mes excuses, hier, la fatigue aidant je devenais un peu trop irritable. J'ai raccroché.

Ce qui est vrai, c'est que ces derniers temps, j'ai souvent le sentiement d'avoir à justifier mes réponses devant les autres répondeurs alors même qu'il n'y a que le demandeur qui puissent déterminer ce qui est bon ou non pour lui.

A++
 
Re : Macro trop longue et répétitive!

Rebonjour,

Je te tiens à vous remercier tous et chacun pour votre précieuse (et rapide!) aide 😉

Ma macro fonctionne bien, sauf pour une chose: mes références sont décalées. Ma feuille "1" prend les références de la feuille "2", ma feuille "2" prend les références de la feuille "3" et ainsi de suite...😕

Alors, ma question est pourquoi? Pourtant, lorsque ma macro prend ma feuille "1", alors mes formules dans mes références devraient prendre i=1 ?? Est-ce que quelqu'un peut m'éclairer là-dessus?

Merci encore,

VB:
 Sub demandes()
Dim i As Integer      '<---- déclaration de variable

Workbooks.Open Filename:= _
        "G:\Voy-Prestations\Statistiques courrier\Statistiques&Correspondances-2011.xls"
    Windows("Hebdo-2011 - Courbes(TO+MO).xls").Activate

With Application      '<---- 4 lignes pour accélérer le traitement
   .ScreenUpdating = False
   .Calculation = xlManual
End With

For i = 1 To 52    '<---- Début de la boucle
With Worksheets(i)
.Range("I7:N8").FormulaR1C1 = _
        "='[Statistiques&Correspondances-2011.xls]Rapport hebdo'!R[" & 10 * i - 8 & "]C[-5]"
.Range("I13:N14").FormulaR1C1 = _
        "='[Statistiques&Correspondances-2011.xls]Rapport hebdo'!R[" & 10 * i - 17 & "]C[-5]+'[Statistiques&Correspondances-2011.xls]Rapport hebdo'!R[" & 10 * i - 11 & "]C[-5]"
End With
Next      '<---- Fin de la boucle

With Application      '<---- Réactivation des paramètres du classeurs désactivés plus haut
   .Calculation = xlAutomatic
    .ScreenUpdating = True
End With

Windows("Statistiques&Correspondances-2011.xls").Activate
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    Windows("Hebdo-2011 - Courbes(TO+MO).xls").Activate
    Sheets("Statistiques").Select

End Sub
 
- 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
21
Affichages
2 K
Réponses
8
Affichages
1 K
Réponses
15
Affichages
3 K
Membre supprimé 341069
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…