macro avec boucle copier/collagespecial

LaKro64

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant sur VBA et je souhaiterai faire une macro qui :
- copie la ligne (I3:BC3) de la feuille ORDA
- fait un collage spécial en valeur et transposé en colonne i de la feuille TCD.
- répéte l'opération en fonction de l'index soit 137 fois

ci-joint un fichier pour que ce soit plus clair pour vous,

merci d'avance si vous avez une idée,

Cdlt

LaKro64
 

Pièces jointes

  • test.xlsm
    35.4 KB · Affichages: 41
  • test.xlsm
    35.4 KB · Affichages: 41
  • test.xlsm
    35.4 KB · Affichages: 42

Grand Chaman Excel

XLDnaute Impliqué
Re : macro avec boucle copier/collagespecial

Bonjour,
Voici un code à essayer, en supposant qu'il y a un valeur dans la cellule I2 de la feuille TCD et rien d'autres en dessous.

VB:
Sub Copie()
   Dim rg As Range, c As Range
   Dim wsORDA As Worksheet, wsTCD As Worksheet
   
   Set wsORDA = Sheets("ORDA")
   Set wsTCD = Sheets("TCD")
   
   Set rg = wsORDA.Range("A7:A" & wsORDA.Range("A" & wsORDA.Rows.Count).End(xlUp).Row)
   For Each c In rg
      If IsNumeric(c) Then
         c.Offset(0, 8).Resize(1, 47).Copy
         wsTCD.Range("I" & wsTCD.Range("I" & wsTCD.Rows.Count).End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True
      End If
   Next c
End Sub
 

LaKro64

XLDnaute Nouveau
Re : macro avec boucle copier/collagespecial

Bonjour,

Merci beaucoup pour votre aide.

Cependant, votre code me copie tous les lignes à partir de (I3:BC3) alors que je ne veux récupérer que les lignes où il y a un chiffre dans la colonne Index.

Ci-joint le fichier pour illustrer mon propos.

Merci d'avance

LaKro64
 

Pièces jointes

  • test.xlsm
    57.7 KB · Affichages: 38
  • test.xlsm
    57.7 KB · Affichages: 35
  • test.xlsm
    57.7 KB · Affichages: 40

Grand Chaman Excel

XLDnaute Impliqué
Re : macro avec boucle copier/collagespecial

Oups...mon erreur.
Voici le code modifié.

VB:
Sub Copie()
    Dim rg As Range, c As Range
    Dim wsORDA As Worksheet, wsTCD As Worksheet
    
    Set wsORDA = Sheets("ORDA")
    Set wsTCD = Sheets("TCD")
    
    Set rg = wsORDA.Range("A7:A" & wsORDA.Range("A" & wsORDA.Rows.Count).End(xlUp).Row)
    For Each c In rg
       If IsNumeric(c) And c.Value <> "" Then
          c.Offset(0, 8).Resize(1, 47).Copy
          wsTCD.Range("I" & wsTCD.Range("I" & wsTCD.Rows.Count).End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True
       End If
    Next c
End Sub
 

Discussions similaires

Réponses
9
Affichages
396
Réponses
2
Affichages
281
Réponses
3
Affichages
565

Statistiques des forums

Discussions
312 185
Messages
2 086 018
Membres
103 094
dernier inscrit
Molinari