XL 2010 une macro pour transférer un tableau

stefer

XLDnaute Junior
Bonjour,
J'ai un tableau dans la feuil1 et je voudrais avec un bouton pouvoir transférer simplement sur la feuil2 certaine colonne (2à7).
Merci de vos réponses
 

Pièces jointes

  • essai.xlsx
    10.8 KB · Affichages: 36

Dranreb

XLDnaute Barbatruc
Bonsoir.
Comme ça ?
VB:
Sub Transfere()
Dim TSrc(), LSrc&, TCbl(), LCbl&, C&
TSrc = Intersect(Feuil1.Rows(4).Resize(1000000), Feuil1.UsedRange).Value
ReDim TCbl(1 To UBound(TSrc, 1), 1 To 6)
For LSrc = 1 To UBound(TSrc, 1)
   If VarType(TSrc(LSrc, 8)) <> vbDate Then
      LCbl = LCbl + 1
      For C = 1 To 6: TCbl(LCbl, C) = TSrc(LSrc, C + 1): Next C: End If: Next LSrc
Feuil2.[A4].Resize(1000000).ClearContents
Feuil2.[A4].Resize(LCbl, 6).Value = TCbl
End Sub
 

stefer

XLDnaute Junior
Bonsoir,
Oui c'est l'idée merci par contre il y a des ligne qui se multiplie dans la feuil2
Pour vous montrer la feuil1 cest les lignes jaunes qui doivent etre transférées mais certaine se multiplie jai fait plein dessai en changeant les dates et il y a des lignes qui se multiplie.
merci d'avance
 

Pièces jointes

  • essai (5).xlsx
    10.8 KB · Affichages: 24

Dranreb

XLDnaute Barbatruc
Oublié d'effacer le reste de colonnes. Comme ça on efface les lignes entières :
VB:
Sub Transfere()
Dim TSrc(), LSrc&, TCbl(), LCbl&, C&
TSrc = Intersect(Feuil1.Rows(4).Resize(1000000), Feuil1.UsedRange).Value
ReDim TCbl(1 To UBound(TSrc, 1), 1 To 6)
For LSrc = 1 To UBound(TSrc, 1)
   If VarType(TSrc(LSrc, 8)) <> vbDate Then
      LCbl = LCbl + 1
      For C = 1 To 6: TCbl(LCbl, C) = TSrc(LSrc, C + 1): Next C: End If: Next LSrc
Feuil2.Rows(4).Resize(1000000).ClearContents
Feuil2.[A4].Resize(LCbl, 6).Value = TCbl
End Sub
 

Statistiques des forums

Discussions
312 198
Messages
2 086 126
Membres
103 127
dernier inscrit
willwebdesign