Synthèse de plusieurs onglets
Résolu
en2mots
Messages postés
170
Statut
Membre
-
Maurice -
Maurice -
Bonjour,
Ci-dessous le fichier relatif à ma question.
https://mon-partage.fr/f/v36kz6vI/
Normalement, mon fichier complet possédera 125 onglets numérotés + un onglet "synthèse".
je voudrais une macro sur l'onglet synthèse qui recupère les infos de chaque onglet numéroté pour les insérer dans les colonnes : F, G, H, I, K, M, P, R, T et W
L'info de la colonne F doit correspondre à la cellule D20 des onglets numérotés
L'info de la colonne G doit correspondre à la cellule D25 des onglets numérotés
L'info de la colonne H doit correspondre à la cellule D30 des onglets numérotés
L'info de la colonne I doit correspondre à la cellule C36 des onglets numérotés
L'info de la colonne K doit correspondre à la cellule B53 des onglets numérotés
L'info de la colonne M doit correspondre à la cellule B54 des onglets numérotés
L'info de la colonne P doit correspondre à la cellule B61 des onglets numérotés
L'info de la colonne R doit correspondre à la cellule B62 des onglets numérotés
L'info de la colonne T doit correspondre à la cellule B63 des onglets numérotés
L'info de la colonne W doit correspondre à la cellule B68 des onglets numérotés
Condition :
les onglets numérotés ne doivent pas être (nous ferons des copier coller sur les onglets d'ù l'importance de garder la structure telle quel modifiés dans leur structure y compris la fusion des cellules car ce sont des documents déjà utilisés comme tels et on ne pourra pas les modifier au près des personnes qui rempliront le document.
Il doit y avoir 125 onglets numérotés au final
Merci pour votre aide
Ci-dessous le fichier relatif à ma question.
https://mon-partage.fr/f/v36kz6vI/
Normalement, mon fichier complet possédera 125 onglets numérotés + un onglet "synthèse".
je voudrais une macro sur l'onglet synthèse qui recupère les infos de chaque onglet numéroté pour les insérer dans les colonnes : F, G, H, I, K, M, P, R, T et W
L'info de la colonne F doit correspondre à la cellule D20 des onglets numérotés
L'info de la colonne G doit correspondre à la cellule D25 des onglets numérotés
L'info de la colonne H doit correspondre à la cellule D30 des onglets numérotés
L'info de la colonne I doit correspondre à la cellule C36 des onglets numérotés
L'info de la colonne K doit correspondre à la cellule B53 des onglets numérotés
L'info de la colonne M doit correspondre à la cellule B54 des onglets numérotés
L'info de la colonne P doit correspondre à la cellule B61 des onglets numérotés
L'info de la colonne R doit correspondre à la cellule B62 des onglets numérotés
L'info de la colonne T doit correspondre à la cellule B63 des onglets numérotés
L'info de la colonne W doit correspondre à la cellule B68 des onglets numérotés
Condition :
les onglets numérotés ne doivent pas être (nous ferons des copier coller sur les onglets d'ù l'importance de garder la structure telle quel modifiés dans leur structure y compris la fusion des cellules car ce sont des documents déjà utilisés comme tels et on ne pourra pas les modifier au près des personnes qui rempliront le document.
Il doit y avoir 125 onglets numérotés au final
Merci pour votre aide
6 réponses
-
Bonjour,
Voici une macro pour effectuer le report des données.
Sub Test()
Dim Ws As Worksheet
Dim Ligne As Integer
Application.ScreenUpdating = False
For Each Ws In Worksheets
If Ws.Name <> "SYNTHESE" Then
Ligne = CInt(Ws.Name) + 3
With Worksheets("SYNTHESE")
'L 'info de la colonne F doit correspondre à la cellule D20 des onglets numérotés
.Cells(Ligne, "F") = Ws.Range("D20")
'L 'info de la colonne G doit correspondre à la cellule D25 des onglets numérotés
.Cells(Ligne, "G") = Ws.Range("D25")
'L 'info de la colonne H doit correspondre à la cellule D30 des onglets numérotés
.Cells(Ligne, "H") = Ws.Range("D30")
'L 'info de la colonne I doit correspondre à la cellule C36 des onglets numérotés
.Cells(Ligne, "I") = Ws.Range("C36")
'L 'info de la colonne K doit correspondre à la cellule B53 des onglets numérotés
.Cells(Ligne, "K") = Ws.Range("B53")
'L 'info de la colonne M doit correspondre à la cellule B54 des onglets numérotés
.Cells(Ligne, "M") = Ws.Range("B54")
'L 'info de la colonne P doit correspondre à la cellule B61 des onglets numérotés
.Cells(Ligne, "P") = Ws.Range("B61")
'L 'info de la colonne R doit correspondre à la cellule B62 des onglets numérotés
.Cells(Ligne, "R") = Ws.Range("B62")
'L 'info de la colonne T doit correspondre à la cellule B63 des onglets numérotés
.Cells(Ligne, "T") = Ws.Range("B63")
'L 'info de la colonne W doit correspondre à la cellule B68 des onglets numérotés
.Cells(Ligne, "W") = Ws.Range("B68")
End With
End If
Next Ws
Application.ScreenUpdating = True
End Sub
Remarque : il me semble que l'emplacement des données dans ton classeur ne correspond pas exactement à ce que tu as indiqué.
A vérifier ...
A+-
Bonjour Gyrus,
Désolé si je te déranger mais tu pourrai m'expliquer comment l'objet "ws" change de feuille sans que tu le dise?- Bonjour,
Avec la boucle For Each Ws In Worksheets ... Next Ws
Traduction : pour chaque feuille de l'ensemble des feuilles du classeur ...
Avec cette boucle, toutes les feuilles sont traitées. Il reste alors à isoler celle qui ne doit pas être prise en compte, à savoir la feuille "SYNTHESE" avec l'instruction
If Ws.Name <> "SYNTHESE" Then
A+
-
-
-
-
Bonjour,
Je dois faire l'addition des tous les onglets(de 1 à 50)?-
non, en fait nous nous allons remplir uniquement les onglets de 1à 125 (dans la réalité), et on nous demande de reporter aussi les infos des 125 onglets dans le tableau synthèse. En fait je voudrais par exemple quand je saisie la fiche de l'onglet 1, que les infos saisies se reportent en synthèse sur la ligne qui porte le numéro 1 (au niveau des numéros colonne A) etc.... et ça pour
L'info de la colonne F doit correspondre à la cellule D20 des onglets numérotés
L'info de la colonne G doit correspondre à la cellule D25 des onglets numérotés
L'info de la colonne H doit correspondre à la cellule D30 des onglets numérotés
L'info de la colonne I doit correspondre à la cellule C36 des onglets numérotés
L'info de la colonne K doit correspondre à la cellule B53 des onglets numérotés
L'info de la colonne M doit correspondre à la cellule B54 des onglets numérotés
L'info de la colonne P doit correspondre à la cellule B61 des onglets numérotés
L'info de la colonne R doit correspondre à la cellule B62 des onglets numérotés
L'info de la colonne T doit correspondre à la cellule B63 des onglets numérotés
L'info de la colonne W doit correspondre à la cellule B68 des onglets numérotés
En temps normal des formules suffiraient mais 125 onglets et 125 lignes c pas possible... je voudrais une macro qui se réfère au numéro d'onglet 1, 2, 3, 4 etc et qui reporte en synthèse par rapport au numéro en colonne A les infos des références ci-dessus -
-
-
Bonjour
tu peux aussi faire comme caSub TestOnglet() Dim Onglet As String On Error Resume Next Sheets("SYNTHESE").Select Application.ScreenUpdating = False For F = 4 To Range("A" & Rows.Count).End(xlUp).Row Onglet = Range("A" & F).Value With Sheets(Onglet) Range("F" & F).Value = .Range("D20") Range("G" & F).Value = .Range("D25") Range("H" & F).Value = .Range("D30") Range("I" & F).Value = .Range("C36") Range("K" & F).Value = .Range("B53") Range("M" & F).Value = .Range("B54") Range("P" & F).Value = .Range("B61") Range("R" & F).Value = .Range("B62") Range("T" & F).Value = .Range("B63") Range("W" & F).Value = .Range("B68") End With Next Application.Goto [A4], True End Sub
A+
Maurice -
Bonjour
je veux bien regarder mes il me faut au mouin un modèle de ton fichier
avec ta macro
A+
Maurice-
https://www.cjoint.com/c/FFCnnRnc6qV
Voilà le fichier. L'onglet qui devrait s'appeler "1" j'ai modifier et en fait à ce jour je ne sais pas quel noms seront donnés aux onglets mais ça peut être chiffres et lettres ou juste un mot ou deux
Merci pour ton aide
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour
a mettre dans un moduleSub Recap() Dim Ws As Worksheet Dim Ligne As Integer Ligne = 4 Application.ScreenUpdating = False For Each Ws In Worksheets If Ws.Name <> Feuil1.Name Then ' Ligne = CInt(Ws.Name) + 3 With Feuil1 'L 'info de la colonne F doit correspondre à la cellule D20 des onglets numérotés .Cells(Ligne, "F") = Ws.Range("D20") 'L 'info de la colonne G doit correspondre à la cellule D25 des onglets numérotés .Cells(Ligne, "G") = Ws.Range("D25") 'L 'info de la colonne H doit correspondre à la cellule B30 des onglets numérotés .Cells(Ligne, "H") = Ws.Range("B33") 'L 'info de la colonne I doit correspondre à la cellule C36 des onglets numérotés .Cells(Ligne, "I") = Ws.Range("C36") 'L 'info de la colonne K doit correspondre à la cellule B53 des onglets numérotés .Cells(Ligne, "K") = Ws.Range("B53") 'L 'info de la colonne M doit correspondre à la cellule B54 des onglets numérotés .Cells(Ligne, "M") = Ws.Range("B54") 'L 'info de la colonne P doit correspondre à la cellule B61 des onglets numérotés .Cells(Ligne, "P") = Ws.Range("B61") 'L 'info de la colonne R doit correspondre à la cellule B62 des onglets numérotés .Cells(Ligne, "R") = Ws.Range("B62") 'L 'info de la colonne T doit correspondre à la cellule B63 des onglets numérotés .Cells(Ligne, "T") = Ws.Range("B63") 'L 'info de la colonne W doit correspondre à la cellule B68 des onglets numérotés .Cells(Ligne, "W") = Ws.Range("B68") Ligne = Ligne + 1 End With End If Next Ws Application.ScreenUpdating = True End Sub
A+
Maurice -
Bonjour
j'ais juste changer la variable Ligne
pour faire vraiment une recape voir ton fichier en retour
http://www.cjoint.com/c/FFDpWqsLifK
A+
Maurice