Comment faire un copier coller en transposant les données ?

Fermé
eglantine217 Messages postés 54 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 3 mars 2013 - 27 févr. 2013 à 18:24
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 4 mars 2013 à 08:43
Bonjour,

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 2 3 et 4), le chemin d'accès est connu, ouvre un par un ces fichiers et colle 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

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

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, Chemin As String
Dim wb As Workbook

Chemin = "C:\Documents and Settings\Desktop\folder des fichiers excel 1 2 3 4\"

Fichier = Dir(Chemin & "*.xls")

Do While Fichier <> ""

Set wb = Workbooks.Open(Chemin & Fichier)

Const FO = "Liste"
Const FD = "Feuil1"

Const CellD = "A2"
Const CellD2 = "B2"

Dim lifin As Long

Set FDest = ThisWorkbook
Set FPrem = Workbooks.Open(Chemin & Fichier)

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

'Ce que je souhaite c'est de coller les valeurs en ligne et pas en colonne (transposer)
'et d'incrémenter la ligne à chaque fin de collage pour que la suite des données se mettent au fur et à mesure

FPrem.Sheets(FO).Range("A7:A" & lifin).Copy Workbooks("Classeur1.xls").Sheets(FD).Range(CellD)

FPrem.Close True
Set wb = Nothing
Fichier = Dir
Loop

End Sub
A voir également:

3 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
28 févr. 2013 à 09:30
Bonjour,

Pourquoi avoir defini des constantes Const CellD = "A2" et Const CellD2 = "B2" si vous voulez ecrire vos donnees en mode incremental?????

'ecriture de cellules transposees
'lig etant la ligne du classeur1 apres le dernier enregistrement de donnees (a rechercher apres chaque enregistrement)
'1 pour colonne A et lifin pour la derniere colonne (variable d'apres vos infos)
Workbooks("Classeur1.xls").Sheets(FD).Range(Cells(lig, 1), Cells(lig, lifin)) = Application.Transpose(FPrem.Sheets(FO).Range("A7:A" & lifin))

A+
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 28/02/2013 à 13:29
Bonjour, re Fxx,
Je confirme les remarques de Fxx, pourquoi toutes ces constantes ??
Une piste à tester..
Sub transfert() 
Dim Fichier As String, Chemin As String, DerLig As Long 
Dim Xks As Worksheet 
    Set wks = Sheets("Feuil1") 
    Chemin = "C:\Documents and Settings\Desktop\folder des fichiers excel 1 2 3 4\" 
    DerLig = 2 
    Fichier = Dir(Chemin & "*.xls") 
     
    Do While Fichier <> "" 
        Workbooks.Open (Chemin & Fichier) 
        With Sheets("Liste") 
            .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row).Copy 
        End With 
        wks.Range("B" & DerLig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
        :=False, Transpose:=True 
        DerLig = DerLig + 1 
        ActiveWorkbook.Close 
        Fichier = Dir 
    Loop 
    Set wks = Nothing 
End Sub

A+
Note : Pas une bonne idée de mettre tes classeurs dans Documents and Settings sur Vista il faut être administrateur pour y accéder et sur W7 c'est interdit.

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
28 févr. 2013 à 17:39
Bonjour lermite,

sur W7 c'est interdit. Vous pouvez developper??
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 28/02/2013 à 18:01
C'est clair non ?, si tu veux écrire dans ce répertoire tu n'auras que des erreurs.
Documents and Settings n'est même plus visible dans W7, c'est comme s'il n'existait pas.
Sur Vista tu le vois encore mais tu ne peu "écrire dedans".
Conseil : Crée des répertoires ailleurs
A+
0
regcal Messages postés 13287 Date d'inscription vendredi 22 mai 2009 Statut Contributeur Dernière intervention 28 juillet 2020 4 603
28 févr. 2013 à 18:03
Documents and Settings est remplacé par users dans W7
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
28 févr. 2013 à 18:30
Re lermite, bonjour regal,

complement d'infos, Users c'est pour la programmation et fenetre cmd, et c'est Utilisateurs avec l'exploreur de windows 7 et 8 ,install en francais y suppos(itoire)

Bye
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 févr. 2013 à 19:55
Fxx.. aie pas de ce côté stp....
douleurs atroces... (c'est pour rire)
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
4 mars 2013 à 08:43
Bonjour à tous,

eglantine,
doublon avec https://forums.commentcamarche.net/forum/affich-27275280-comment-coller-des-donnees-dans-differentes-colonnes#p27278796 ?
Et sur tes 10 dernières questions un seul merci et aucun autre retour.
Je crois qu'il va falloir apprendre à travailler seule...
eric
0