Excel : copier la même ligne de plsrs feuille

Résolu
betiz22 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

voila j'ai un gros soucis.
Je ne suis pas un pro d'excel et je bloque sur un élément.
Je vous explique mon problème.

J'ai un fichier excel qui comporte 84 feuilles.
Je souhaitais mettre sur une 85ème feuille un récapitulatif de toutes les données qui sont inscrits entre A2:H2.
Ces données sont du texte et des nombres.
A savoir que chaque feuille porte des noms totalement différents.

j'ai essayé un copier coller (j'ai tout sélectionné avec la touche maj), mais ils disent que les tailles différent donc que je ne peux pas.
Par ailleurs je suppose que si je copie-colle, ça ne se mettra pas à jour.

J'ai vu certaines réponses sur le forum mais je ne comprends rien du tout aux formules.

J'ai essayé d'aller dans le visual basic editor, mais je comprends pas.

Quelqu'un aurait-il une formule à me proposer ?

Merci bcp à vous et bonne journée

6 réponses

  1. sirefalas Messages postés 260 Statut Membre 8
     
    Je ne suis pas sur d'avoir compris ce que tu veux faire.
    Tu veux copier une ligne de chacune de tes 84 pages pour les mettre les unes en dessous des autres dans la 85 page?

    Si c'est le cas, tu es obligé de faire une macro et la... on risque de prendre un peu de temps
    0
    1. betiz22
       
      Je pense que tu as raison, en parlant de macro... c'est là mon pb.
      Donc oui, je veux copier une ligne (A2:H2) de mes 84 pages pour les mettre les unes sous les autres dans une 85ème page
      0
  2. m@rina Messages postés 27672 Date d'inscription   Statut Modérateur Dernière intervention   11 567
     
    Bonjour,

    Tu dis :
    "Je souhaitais mettre sur une 85ème feuille un récapitulatif de toutes les données qui sont inscrits entre A2:H2."
    Mais de quelle(s) feuille(s) ?
    Est ce que le but est de mettre récupérer les données des 84 feuilles sur la 85e ?

    m@rina
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour,

    Sub compiler()
    Dim sht As Byte, col As Byte
    Dim compil(1 To 84, 1 To 8)
    
    For sht = 1 To 84
         For col = 1 To 8
              compil(sht, col) = Sheets(sht).Cells(2, col)
         Next col
    Next sht
    
    Application.ScreenUpdating = False
    With Sheets(85).Range("A2:H85")
         .Value = compil
         .Borders.Weight = xlThin
    End With
    End Sub
    


    si tu ne sais pas comment installer cette macro, tu dis...
    0
  4. Raymond PENTIER Messages postés 58225 Date d'inscription   Statut Contributeur Dernière intervention   17 488
     
    Bonjour betiz22.

    "j'ai essayé un copier coller (j'ai tout sélectionné avec la touche maj), mais ils disent que les tailles différent donc que je ne peux pas"
    ... c'est parce que tu n'as pas procédé comme il se doit :

    En supposant que tes feuilles 1 et 2 ont une ligne de titres et 49 enregistrements,
    * sélectionner les lignes 1 à 50 de Feuil1 et faire ctrl+C (copier),
    ** cliquer dans la cellule A1 de Feuil85 et faire ctrl+V (coller) ;
    * sélectionner les lignes 2 à 50 de Feuil2 et faire ctrl+C (copier),
    ** cliquer dans la cellule A51 de Feuil85 et faire ctrl+V (coller).

    Ton erreur est de copier une plage de cellules et pas des lignes complètes.

    Cordialement.
    0
    1. betiz22
       
      Merci bcp mais le copier coller individuel j'arrive. Le soucis c'est que ca signifie que je dois le faire 85 fois. et j'ai 4 classeurs comme ça. Donc près de 340 fois. Non merci ^^
      Je souhaite que ce soit automatisé.
      Que la ligne A2:H2 de toutes mes feuilles se copient collent les unes sous les autres dans un classeur à part.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour, everybody on ze forum

    Problème résolu par MP

    la solution retenue ci jointe pour respecter l'aspect communautairehttps://www.cjoint.com/?0EunIdfgh3L
    et la macro
    Sub compiler()
    Dim nbre As Byte, cptr As Byte, cptr_c As Byte, col As Byte
    Dim compil
    
    nbre = ThisWorkbook.Sheets.Count
    ReDim compil(1 To nbre - 2, 1 To 9)
    cptr_c = 1
    For cptr = 1 To nbre
         With Sheets(cptr)
              If .Name <> "synthese" And .Name <> "Suivi mensuel" Then
                   For col = 1 To 8
                        compil(cptr_c, col) = .Cells(2, col)
                   Next col
                   cptr_c = cptr_c + 1
              End If
         End With
    Next cptr
    
    Application.ScreenUpdating = False
    With Sheets("synthese")
         .Range("A2:H129").Clear
         With .Range("A2").Resize(nbre - 2, 8)
              .Value = compil
              .Borders.Weight = xlThin
         End With
    .Activate
    End With
    
    End Sub
    


    Bon WE
    0