Synthèse de plusieurs onglets

Résolu
en2mots Messages postés 166 Date d'inscription   Statut Membre Dernière intervention   -  
 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

6 réponses

Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
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+
1
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
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?
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526 > Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention  
 
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+
0
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Merci bonne journée :)
0
en2mots Messages postés 166 Date d'inscription   Statut Membre Dernière intervention  
 
Merci à tous les deux ! impeccable !
0
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Bonjour,

Je dois faire l'addition des tous les onglets(de 1 à 50)?
0
en2mots Messages postés 166 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Ok je regarde ce que je peux faire
0
Maurice
 
Bonjour
tu peux aussi faire comme ca
Sub 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
0
en2mots Messages postés 166 Date d'inscription   Statut Membre Dernière intervention  
 
ci
0
en2mots Messages postés 166 Date d'inscription   Statut Membre Dernière intervention  
 
merci
0
en2mots Messages postés 166 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Maurice,

Je dois changer le nom des onglets... non plus des chiffres (1,2,3,4...) mais des lettres (exemple : "aub lux", "aub moul", etc...) comment retarvailler la macro car ça ne marche pas si je change les noms des onglets et de la colonne de référence... Merci pour ton aide
0
Maurice
 
Bonjour
je veux bien regarder mes il me faut au mouin un modèle de ton fichier
avec ta macro
A+
Maurice
0
en2mots Messages postés 166 Date d'inscription   Statut Membre Dernière intervention  
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Maurice
 
Bonjour
a mettre dans un module
Sub 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
0
en2mots Messages postés 166 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Maurice,

Ça fonctionne très bine, merci beaucoup mais du coup tu peux m'expliquer ce que tu as fait comme modif. Ca me permettra de mieux comprendre et d'apprendre un truc. Merci
0
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
0