Reporter des informations d'un onglet sur un autre onglet Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
P
Petitejiji
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 24 août 2017
Version d'Excel : 2016

Message par Petitejiji » 14 mars 2019, 18:00

Bonsoir,

Hier, GGautier, Xorsankukai et Gmb m'ont filé un sacré coup de main pour construire une macro qui permet de dupliquer des onglets.
Ils m'ont donné plusieurs exemples et j'ai construit ma macro à partir de ce fichier :
Dupliquer.xlsm
(30.8 Kio) Téléchargé 11 fois
Si on prend la page de synthèse, il y a une macro qu permet de reporter tous les noms à la suite avec le score total de chaque élève (tableau de gauche).

Moi, je voudrai savoir s'il est possible de reporter les noms dans une case précise ?
Dans mon exemple, il y a 2 élèves : pierre et paul et je souhaite pouvoir reprendre ces 2 noms en case E6 et E11...
Si je fais la même chose pour 4 élèves, les noms seront reportés en E6, E11, E16 et E21 et ainsi de suite.

Je ne sais pas si c'est très clair mais j'ai mis un tableau dans l'onglet "synthèse" en rouge...

Merci pour votre aide

Petitejiji
Avatar du membre
xorsankukai
Membre impliqué
Membre impliqué
Messages : 2'129
Appréciations reçues : 234
Inscrit le : 7 octobre 2014
Version d'Excel : 2010 FR

Message par xorsankukai » 14 mars 2019, 18:53

Bonsoir Petitejiji,

Un essai....
Sub listeonglet()   'noms des onglets en colonne A, formule en colonne B
Dim i As Integer

     Sheets("Synthèse").Activate
     Range("A6:A" & Rows.Count).ClearContents
     Range("E6:E" & Rows.Count).ClearContents
     
     Range("A6").Select
    For i = 4 To Sheets.Count
        ActiveCell.Value = Sheets(i).Name
        ActiveCell.Offset(1, 0).Select
    Next i
    
    Range("E6").Select
     For i = 4 To Sheets.Count
        ActiveCell.Value = Sheets(i).Name
        ActiveCell.Offset(5, 0).Select
    Next i
End Sub

Mais tu vas avoir un souci si tu veux utiliser des formules en colonne F, :|
Dupliquer-2.xlsm
(30.73 Kio) Téléchargé 2 fois
Bonne soirée,
xorsankukai

La connaissance, c’est partager le savoir qui nous fait grandir.
P
Petitejiji
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 24 août 2017
Version d'Excel : 2016

Message par Petitejiji » 14 mars 2019, 19:16

Salut Xorsankukai,

Merci pour ta réponse hyper rapide... oui en effet, tu as raison, je ne vais pas pouvoir reporter mes formules... mais en tout cas, j'ai testé et ta macro fonctionne super bien :good:

C'est peut-être ma manière de résoudre mon problème qui n'est pas la bonne....

En fait, une fois que les onglets sont crées, il faudrait que je puisse faire une sorte de synthèse (nom élève et ses scores) mais peut-être que la solution ne passe pas par une macro? Mais comme je ne connais pas à l'avance le nombre d'onglet que je vais créer, je ne peux pas faire un report pure et simple de case....
Dupliquer.xlsm
(29.48 Kio) Téléchargé 7 fois
PS : juste une question (une autre) : quand je crée des onglets, il y a une boîte de message vide qui s'affiche. C'est possible d'avoir un message du type "confirmez-vous la création de X onglets?"

Merci encore
Petitejiji
Avatar du membre
xorsankukai
Membre impliqué
Membre impliqué
Messages : 2'129
Appréciations reçues : 234
Inscrit le : 7 octobre 2014
Version d'Excel : 2010 FR

Message par xorsankukai » 14 mars 2019, 19:31

Re,
C'est peut-être ma manière de résoudre mon problème qui n'est pas la bonne...
Je t'invite à lire ce sujet qui traite d'un cas similaire, j'ai tenté de le traiter par VBA mais notre ami Bruno45 a démontré qu'on pouvait le faire par formule....
viewtopic.php?f=2&t=121857

Bonne soirée,
xorsankukai

La connaissance, c’est partager le savoir qui nous fait grandir.
Avatar du membre
xorsankukai
Membre impliqué
Membre impliqué
Messages : 2'129
Appréciations reçues : 234
Inscrit le : 7 octobre 2014
Version d'Excel : 2010 FR

Message par xorsankukai » 15 mars 2019, 11:09

Bonjour,

Nouvel essai:
-on crée les onglets par macro
-on traite le reste par formules
Dupliquer4.xlsm
(32.04 Kio) Téléchargé 3 fois
Cordialement,
xorsankukai

La connaissance, c’est partager le savoir qui nous fait grandir.
P
Petitejiji
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 24 août 2017
Version d'Excel : 2016

Message par Petitejiji » 15 mars 2019, 12:44

Salut Xorsankukai,

Merci beaucoup pour ton aide.
Je vais effectivement reprendre la formule de Bruno45. C'est plus simple pour moi et elle fonctionne très bien.
Et d'ailleurs, je te remercie pour le dernier exemple.

Alors j'ai repris ton code, comme ça :
Sub listeonglet()   'noms des onglets en colonne A, formule en colonne B
Dim i As Integer

     Sheets("feuil3").Activate
     Range("A9:A" & Rows.Count).ClearContents
         
     Range("A9").Select
    For i = 7 To Sheets.Count
        ActiveCell.Value = Sheets(i).Name
        ActiveCell.Offset(5, 0).Select
    Next i
      
End Sub
Avec ce code, toutes les 5 lignes, j'ai un nouveau nom qui apparaît (c'est ce que j'avais demandé !..... :thx: ). Mais comme je vais utiliser les formules de Bruno45, c'est possible d'avoir 5 fois le premier nom, puis 5 fois le deuxième nom... et ainsi de suite ?
En effet, je suis coincée pour la présentation de la première colonne. Il me faudrait plutôt une présentation de ce type :
Capture.PNG
Capture.PNG (5.08 Kio) Vu 112 fois
Merci encore et bonne journée

Petitejiji
Avatar du membre
xorsankukai
Membre impliqué
Membre impliqué
Messages : 2'129
Appréciations reçues : 234
Inscrit le : 7 octobre 2014
Version d'Excel : 2010 FR

Message par xorsankukai » 15 mars 2019, 13:12

Bonjour Petitejiji,

Essaie ainsi:
 Range("E6").Select
     For i = 4 To Sheets.Count
        ActiveCell.Value = Sheets(i).Name
        ActiveCell.Offset(1, 0) = Sheets(i).Name
        ActiveCell.Offset(2, 0) = Sheets(i).Name
        ActiveCell.Offset(3, 0) = Sheets(i).Name
        ActiveCell.Offset(4, 0) = Sheets(i).Name
        ActiveCell.Offset(5, 0).Select
    Next i

Dupliquer.xlsm
(28.21 Kio) Téléchargé 4 fois
Cordialement,
xorsankukai

La connaissance, c’est partager le savoir qui nous fait grandir.
P
Petitejiji
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 24 août 2017
Version d'Excel : 2016

Message par Petitejiji » 15 mars 2019, 16:22

Salut Xorsankukai,

Ça marche du tonnerre !!! Merci beaucoup
Je peux te demander un dernier truc ?
C'est possible sur la base du même code de faire en sorte qu'on saute une ligne entre chaque nom du type :
Capture.PNG
Capture.PNG (5.11 Kio) Vu 96 fois
Bon là, c'est juste de la présentation.... mais si c'est possible, ce serait vraiment cool !!

:thx:

Petitejiji
Avatar du membre
xorsankukai
Membre impliqué
Membre impliqué
Messages : 2'129
Appréciations reçues : 234
Inscrit le : 7 octobre 2014
Version d'Excel : 2010 FR

Message par xorsankukai » 15 mars 2019, 16:38

Re,
faire en sorte qu'on saute une ligne entre chaque nom du type
Range("E6").Select
     For i = 4 To Sheets.Count
        ActiveCell.Value = Sheets(i).Name
        ActiveCell.Offset(1, 0) = Sheets(i).Name
        ActiveCell.Offset(2, 0) = Sheets(i).Name
        ActiveCell.Offset(3, 0) = Sheets(i).Name
        ActiveCell.Offset(4, 0) = Sheets(i).Name
        ActiveCell.Offset(6, 0).Select
    Next i
DupliquerV5.xlsm
(24.88 Kio) Téléchargé 4 fois
Cordialement,
xorsankukai

La connaissance, c’est partager le savoir qui nous fait grandir.
P
Petitejiji
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 24 août 2017
Version d'Excel : 2016

Message par Petitejiji » 15 mars 2019, 16:47

Oh là là, Xorsankukai, tu es mon héroooooooooooooo :ave:

Merci beaucoup pour ton aide qui a été vraiment super efficace ainsi qu'à GGautier, Gmb sans oublier Bruno45 (pour son précédent post sur la même thématique).

Vous êtes super (10/10)

Bon week-end à tous

Petitejiji
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message