Récupérer des valeurs dans des onglets créés avec une macro [Résolu/Fermé]

Signaler
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
-
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
-
Bonsoir,

je dispose d'une macro qui me permet de recopier à l'identique l'onglet dans lequel se situe la macro. Celle ci recopie et renomme l'onglet en incrémentant le nom de l'onglet. Le 1er se nomme ER1, la macro crée ER2, puis la macro dans ER2 crée ER3,...etc... L'utilisateur doit pouvoir créer autant d'onglet ERx que nécessaire.

Mais voilà, j'ai besoin de récupérer les valeurs de 5 cellules des onglets ER1, ER2, ....ERx dans une feuille nommée "Synthèse".

C'est pourquoi, j'ai cherché à créer une macro qui grâce à une boucle for i=1..100, les valeurs soient copiées et recopiées dans la feuille "Synthèse". Les 5 données de ER1 doivent être copiées dans la ligne 21, les données de ER2 dans la ligne 22,...etc...

Mon problème est que je n'arrive pas à créer cette boucle et je ne sais pas du tout comment programmer le fait que les données de ERx seront recopiées dans la ligne 2x de la feuille "Synthèse".

Merci d'avance pour l'aide précieuse que vous pourrez m'apporter !

En vous souhaitant de joyeuses fêtes de fin d'année !!

3 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 292
Bonjour,

Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec la macro déjà utilisée, se serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
Messages postés
12907
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2021
2 105
Bonsoir Luke94

Voilà une des macros possibles, à adapter :

Sub report()
x = 0
'compte le nombre d'onglets commençant par ER
For n = 1 To Sheets.Count
If Left(Sheets(n).Name, 2) = "ER" Then x = x + 1
Next n
' Boucle sur les onglets et alimente Synthese
For t = 1 To x
' Modifier les references pour les adapter à ton fichier
Sheets("Synthese").Range("A" & 20 + t) = Sheets("ER" & t).Range("A10")
Sheets("Synthese").Range("C" & 20 + t) = Sheets("ER" & t).Range("C10")
Sheets("Synthese").Range("E" & 20 + t) = Sheets("ER" & t).Range("E10")
Sheets("Synthese").Range("F" & 20 + t) = Sheets("ER" & t).Range("F10")
Sheets("Synthese").Range("H" & 20 + t) = Sheets("ER" & t).Range("H10")
Next t
End Sub


Cdlmnt
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019

Bonsoir,

je me suis rendu compte que je n'ai pas clôturé le sujet...

Avec énormément de retard, je vous remercie beaucoup pour votre proposition qui a répondu parfaitement à mon problème.

Cordialement.