Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Dopaji
  • 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 !

D

Dopaji

Guest
Bonjour à tous.

Je suis nouveau sur ce forum. Je vous prie de bien vouloir m'excuser pour les erreurs que je pourrais commettre.

Voici mon soucis.

J'ai un classeur avec 20 feuilles; avec cinq macros par feuilles ( cinq mêmes macro pour chaque feuille). Je voudrais que les cent macro s'effectuent en une seules fois.

Quelqu'un pourrait-il m'aider. Merci d'avance
 
Re : Dopaji

Merci pour ton aide Hulk.

Je crois aussi que je n'aii pas placé mon message au bon endroit
 
Re : Dopaji

Bonjour Dopaji,

Dopaji à dit:
J'ai un classeur avec 20 feuilles; avec cinq macros par feuilles ( cinq mêmes macro pour chaque feuille).

L'idéal pour éviter la répétition inutile de tes 5 même macro, au lieu de les mettre sur chaque feuille, met les qu'une fois dans Module en l'adaptant très légèrement (sans ta macro difficile de t'aider plus).

Ensuite a la fin de ta première macro, il te suffit, juste avant le End Sub d'appeler la macro suivante.

Comment?

En écrivant tout simplement son nom. Exemple

Code:
Sub macro1()
  ta macro

  macro2
End Sub

Sub macro2()
...

Sinon tu peux aussi faire ainsi :
Code:
Sub macro1()
  ta macro

  call macro2
End Sub

Sub macro2()
...

Idem pour les macros suivante.

Dopaji à dit:
Je voudrais que les cent macro s'effectuent en une seules fois.

Là, tu en auras plus que 5 et se lancerons en une seul fois.

Bon vendredi
 
Re : Dopaji

Merci Excel-Lent pour ton aide. Ca fonctionne parfaitement sur une feuille.
Je t'explique ce que je veux faire. Je fais un suivi journalier de 20 sociétés cotées en bourse. Tous les jours à la cloture je dois calculer la valeur des indicateurs techniques.
J'ai donc créé un classeur avec une feuille par société (Copie de feuille). J'ai donc 20 fois la même présentation. Je veux chaque soir afficher dans une cellules voisines les valeurs journalières pour ces différents indices.

Voici la macro que j'utilise.

Sub indice1 ()
Range ("A65536").Select
ActiceCell.End(xlUp).Select
Range ("M1")=Activecell.Value
Call indice2
End Sub

Sub indice2 ()
Range ("B65536").select
.
.
.

Et ainsi de suite pour tous les indices.

Cela fonctionne sur une seule feuille car j'ai les mêmes colonne sur les feuilles suivantes (Même présentation

Si j'utilise la même macro pour la feuille suivante j'ai une erreur 400. Je suppose que c'est parce que j'ai les mêmes adresses.

Je ne connais pas la syntaxe à utiliser pour faire la différence ebtre les feuilles.

Peux-tu m'aider ?
 
Re : Dopaji

bonjour Dopaji

Quelque chose du genre:

Code:
Sub indice1()
Dim sh As Worksheet
For Each sh In Worksheets
 sh.Range("M1") = sh.Range("A65536").End(xlUp)
Call indice2(sh)
Next sh
End Sub
Sub indice2(sh As Worksheet)
 sh.Range("B65536").Select
 '......
End Sub
 
Re : Dopaji

Je ne comprends pas la syntaxe. Je suis plus que débutant en macro. Que veut dire Dim sh As Worksheets. Pour le reste je crois que je comprends tout. Merci pour votre aide.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
327
Réponses
6
Affichages
336
Réponses
4
Affichages
498
Réponses
4
Affichages
298
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…