Integrer lignes sur plusieurs onglets les unes apres les autres excel 2010

caroouline Messages postés 37 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,
J'ai chercher très longtemps une solution sur internet et je n'ai pas trouvé satisfaction.
J'ai excel 2010.
J'aimerais récupérer toutes les lignes de mon premier onglet pour les mettre sur un nouvel onglet.
Ensuite mettre en dessous les lignes de mon deuxième onglet et ensuite troisième onglet.
Mais j'aimerais que se soit automatique comme une macro ou un tableau croisé dynamique.
Et aussi en copiant mon fichier et renommant que je n'ai pas besoin de refaire les manip. Car je fais un fichier par mois et d'ailleurs le nombre de lignes n'est jamais identique.
Cependant ce ne sont pas des valeurs en nombre sur toutes les colonnes puisque ce sont mes importations d’écritures comptables.
C'est pour cela que un tableau croisé dynamique avec étiquette ne marche pas.

N'hésitez pas si vous avec besoin de mieux comprendre la problématique si j'ai mal expliqué.

Je vous remercie,
Bonne soirée,

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    En vba tu ajoutes une feuille en premier(a gauche) pour recevoir les données

    Et tu associes ce code à un bouton:

    Option Explicit
    Private Sub CommandButton1_Click()
     Dim s As Integer
     Dim plage As String
     Dim derligne As Long
     For s = 2 To ThisWorkbook.Worksheets.Count
     derligne = Worksheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row + 1 ' feuille receptrice
     plage = Worksheets(s).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookIn:=xlFormulas).Address 'dernière cellule remplie feuille copie
    plage = Replace(plage, "$", "") 'on enleve les $
    Worksheets(s).Range("A1:" & plage).Copy _
        Destination:=Worksheets(1).Range("A" & derligne) 'on copie
     Next
    End Sub
    


    Voilà

    -
    -
    @+ Le Pivert
    0
    1. caroouline Messages postés 37 Statut Membre
       
      Bonjour cs_le pivert,

      désolé c'est un peu complexe je n'ai pas compris ou modifier les éléments.
      0
      1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > caroouline Messages postés 37 Statut Membre
         
        voici un exemple avec les explications:

        https://www.cjoint.com/c/JEgpF2fjFsQ


        IMPORTANT

        Il faut supprimer toutes les explications en rouge car cela fausse les données!

        @+ Le Pivert
        0
      2. caroouline Messages postés 37 Statut Membre > cs_Le Pivert Messages postés 8437 Statut Contributeur
         
        Bonjour,

        Pourriez-vous m'aider svp, je n'arrive toujours pas.
        Le code c'est :

        Option Explicit
        Sub Import()
        Dim s As Integer
        Dim plage As String
        Dim derligne As Long
        For s = 2 To ThisWorkbook.Worksheets.Count
        derligne = Worksheets(Import).Cells.SpecialCells(xlCellTypeLastCell).Row
        plage = Worksheets(3 - CAF - CFACT).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookIn:=xlFormulas).Address 'dernière cellule remplie feuille copie
        plage = Replace(plage, "$", "")
        Worksheets(s).Range("A1:" & plage).Copy _
        Destination:=Worksheets(Import).Range("A" & derligne)
        Next
        End Sub

        J'ai enlever private car je n'arrivais pas à affecter au bouton.
        Mais ça me bloque à la ligne SUB
        0
      3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > caroouline Messages postés 37 Statut Membre
         
        Il faut mettre le nom de la feuille entre des doubles cotes " Import"

        Option Explicit
         Sub Import()
         Dim s As Integer
         Dim plage As String
         Dim derligne As Long
         For s = 2 To ThisWorkbook.Worksheets.Count
         derligne = Worksheets("Import").Cells.SpecialCells(xlCellTypeLastCell).Row + 1 ' feuille receptrice
         plage = Worksheets(s).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookIn:=xlFormulas).Address 'dernière cellule remplie feuille copie
        plage = Replace(plage, "$", "") 'on enleve les $
        Worksheets(s).Range("A1:" & plage).Copy _
            Destination:=Worksheets("Import").Range("A" & derligne) 'on copie
         Next
        End Sub


        voilà

        @+ Le Pivert
        0
  2. caroouline Messages postés 37 Statut Membre
     
    Bonjour,

    Merci pour tes réponses je réessayerais peut être le mois prochain.
    Car pas réussi car je ne peux pas prendre ton fichier d'origine car le mieux est déjà trop travaillé.
    0