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

caroouline Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
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,
A voir également:

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
caroouline Messages postés 35 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour cs_le pivert,

désolé c'est un peu complexe je n'ai pas compris ou modifier les éléments.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > caroouline Messages postés 35 Date d'inscription   Statut Membre Dernière intervention  
 
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
caroouline Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > caroouline Messages postés 35 Date d'inscription   Statut Membre Dernière intervention  
 
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
caroouline Messages postés 35 Date d'inscription   Statut Membre Dernière intervention  
 
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