Copier coller d'une feuille excel à une autre sous un autre format

Yannnnick

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant sur VBA et je dois faire quelque chose qui me parait compliqué.
Je dois faire passer l'information d'une feuille excel à une autre mais en changeant le format.
Par exemple je dois faire apparaitre les informations de 50 colonnes sur une seule colonne dans la nouvelle feuille. J'arrive à faire apparaitre la premiere colonne mais je n'arrive pas à trouver le code afin que l'information dela colonne suivante aille à la suite de la premiere. Je ne trouve pas non plus comment faire une boucle pour importer les informations des 50 colonnes.

Voici mon code :

Dim i As Integer
Dim j As Integer

j = 7

For i = 12 To 133 'i parcours les lignes


Sheets(15).Range("V" & j).Value = Sheets(7).Range("I" & i).Value 'I debut de la colonne
j = j

Sheets(15).Range("U" & j).Value = Sheets(8).Range("I" & i).Value 'I debut de la colonne
j = j + 1

J'ai mis en copie le fichier excel en question :

les information doivent aller de la feuille VAr FTE à LA feuille 1

- les colonnes I à GB et de la ligne 12 à 133 doivent etre collees sur une seule colonne de la feuille 1 (colonne V)
- Les colonnes C et D doivent etre collees en colonnes W et Y et se repeter 51 fois car 51 colonnes
- La cellule I 8 doit etre colles en cellule C7 et etre repete 121 fois X par les 51 colonnes

Voila une partie de mon probleme j'espere que mon mail n'est pas trop long et que ca va pas vous decourager sachant que ma priorité est le point numero un.

Merci d'avance pour votre aide

A plus

Yannick
 

Pièces jointes

  • Confidentiel.xls
    228 KB · Affichages: 49

Grand Chaman Excel

XLDnaute Impliqué
Re : Copier coller d'une feuille excel à une autre sous un autre format

Bonjour Yannnnick et bienvenue sur le forum,

Essaie cette macro, ça devrait fonctionner :

VB:
Sub TransfertDonnees()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim rg As Range
    Dim L1 As Integer, L2 As Integer
    Dim rgC As Range, rgP As Range
    
    Application.ScreenUpdating = False
    
    Set ws1 = ThisWorkbook.Sheets("Var_FTE_R22011.12")  'feuille de départ
    Set ws2 = ThisWorkbook.Sheets("Feuil1")             'feuille de destination
    
    'Lignes de départ et fin
    L1 = 12
    L2 = 133
    
    Set rg = ws1.Range("I8")    'cellule de départ
    
    Do Until IsEmpty(rg)
    
        'Copie des lignes 12 à 133 dans la colonne V
        Set rgP = ws2.Range("V65536").End(xlUp).Offset(1, 0)    'cellule de destination
        Set rgC = Range(ws1.Cells(L1, rg.Column), ws1.Cells(L2, rg.Column))
        rgC.Copy rgP
        
        'Copie de la colonne C dans W
        Set rgC = ws1.Range("C" & L1).Resize(L2 - L1 + 1, 1)
        Set rgP = ws2.Range("W" & rgP.Row).Resize(L2 - L1 + 1, 1)
        rgC.Copy rgP
        
        'Copie de la colonne D dans Y
        Set rgC = ws1.Range("D" & L1).Resize(L2 - L1 + 1, 1)
        Set rgP = ws2.Range("Y" & rgP.Row).Resize(L2 - L1 + 1, 1)
        rgC.Copy rgP
        
        'Colonne C
        ws2.Range("C" & rgP.Row).Resize(L2 - L1 + 1, 1) = rg 'colonne C
    
    Set rg = rg.Offset(0, 1)    'on décale de 1 colonne
    Loop

    Application.ScreenUpdating = True
    
End Sub

A+
 

Yannnnick

XLDnaute Nouveau
Re : Copier coller d'une feuille excel à une autre sous un autre format

Grand Chaman Excel,

Comme le dit ton nom tu est vraiment grand!!!
Merci beaucoup pour ta réponse la macro marche parfaitement.
T'es au top!!!!!
Je suis entrain de mettre la macro en place sur mon fichier et de l'étudier.
J'espère un jour avoir ton niveau!!!!
Encore une fois merci pour tout et pour ta réactivité.

Bonne soirée et vive le Canada!!!!!

A plus
 

Discussions similaires

Réponses
7
Affichages
351

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet