Comment copier coller des données d'un classeur vers un autre ?

violette16 Messages postés 8 Date d'inscription mercredi 6 juin 2012 Statut Membre Dernière intervention 28 février 2013 - 28 févr. 2013 à 19:54
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 1 mars 2013 à 09:59
Bonjour, je galère bcp avec plusieurs codes que j'ai essayé de faire et je n'arrive tj pas à résoudre mon pb.


Le but est d’avoir un fichier Excel nommé « classeur1 » qui récupère toutes les données de plusieurs fichiers excel présents dans un répertoire qui stocke ces fichiers excel (fichier 1 puis 2 puis 3 et 4 ...), le chemin d’accès est connu, la macro doit ouvrir un par un ces fichiers et coller les données de la colonne A du fichier 1 dans le classeur 1 destiné à la récupération de l’ensemble des données.

Exemple : classeur1 ouvert

Clique sur la macro qui ...

Ouvre le fichier 1 excel copie la colonne A et la colle en ligne dans la ligne A1 du fichier Classeur1

Puis fermeture du fichier 1

Ouverture du fichier 2 copie la colonne A et la colle en ligne A2 du fichier Classeur1 puis ferme le fichier 2 et ainsi desuite


Sub transfert()
Dim fichier As String
Dim chemin As String
Dim derlig As Long
Dim Xks As Worksheet
Dim lifin As String
Set wks = ThisWorkbook.Sheets("Feuil") 'fichier excel ouvert qui va récupérer les données

chemin = "C:\Bibliothèque\Document\test macro"

derlig = 2
fichier = Dir(chemin & "*.xls")

Do While fichier <> ""

Workbooks.Open (chemin & fichier)
derlig = Range("A7:A" & Rows.Count).End(xlUp).Row

lifin = Range("A" & Rows.Count).End(xlUp).Row

With Sheets("Harnais").Range("A7:A" & lifin).Copy

End With

wks.Range("A" & derlig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False

derlig = derlig + 1
ActiveWorkbook.Close
fichier = Dir
Loop
Set wks = Nothing
End Sub



j'ai également un autre code mais sans succès

Sub test()

Dim fichier As String, chemin As String
Dim wb As Workbook

chemin = "C:\Bibliothèque\Documents\test macro"
fichier = Dir(chemin & "*.xls")

Do While fichier <> ""

    Set wb = Workbooks.Open(chemin & fichier)
    
    Const FO = "Onglet1"
    Const FD = "Feuil1"
    
         
    Dim lifin As Long
    
    Set FDest = ThisWorkbook
    Set FPrem = Workbooks.Open(chemin & fichier)
    
    lifin = Range("A" & Rows.Count).End(xlUp).Row
    
    
    Workbooks("Classeur1.xls").Sheets(FD).Range (Cells(lig, 1)), (Cells(lig, 1)) = Application.Transpose.Workbook(FPrem).Sheets(FO).Range("A7:A" & lifin)
    
    FPrem.Close True
    Set wb = Nothing
    fichier = Dir
Loop

End Sub

2 réponses

Utilisateur anonyme
28 févr. 2013 à 20:30
Bonjour,

 Workbooks("Classeur1.xls").Sheets(FD).Range (Cells(lig, 1)), (Cells(lig, 1)) = _ 
 Application.Transpose.Workbook(FPrem).Sheets(FO).Range("A7:A" & lifin)
 


Que cela ne règle pas ton problème, c'est loin d'être surprenant. Transpose sert à inverser les lignes et les colonnes d'un tableau.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
1 mars 2013 à 09:59
Que cela ne règle pas ton problème, c'est loin d'être surprenant. Transpose sert à inverser les lignes et les colonnes d'un tableau.

Le souci ne se trouve pas dans la transposition.. puisque visiblement c'est ce qu'il veut.
copie la colonne A et la colle en ligne dans la ligne A1 du fichier Classeur1


Par contre :
j'ai également un autre code mais sans succès

- OK.... mais encore ? ... quel est le souci rencontré ?
- En mode pas à pas... où se trouve le blocage ?
- Tu dev sous Excel.. donc en VBA ! Pourquoi poster la question dans VB6 ?

Enfin bon...
En essaynt ton code en mode pas à pas.. je tombe sur la ligne:
 ThisWorkbook.Sheets(FD).Range (Cells(lig, 1)), (Cells(lig, 1)) = Application.Transpose.Workbook(FPrem).Sheets(FO).Range("A7:A" & lifin)


Et lig est : VIDE !

Ne devrais tu pas remplacer lig par le N° de ligne où copier les valeurs ?



Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
Rejoignez-nous