copier coller

Mitch

XLDnaute Occasionnel
Bonjour, pourriez vous m'aider svp , j'ai une macro pour faire un copier coller seulement dans les colonnes I,J,K,L (en rouge) j'ai des cellules vides et la macro me decales ces colonnes , quelle est la modif

PS: ne connaissant pas le vba la macro si-dessous n'est peut être pas très joli

Merci


Sub Copier()
Dim i As Long, fin As Long, a As Integer
Feuil2.Range("A2:XFD1048576").Clear
Feuil1.Range("A2:XFD1048576").Clear
fin = Feuil4.Range("A65000").End(xlUp).Row
For i = 2 To fin
For a = 1 To Feuil4.Cells(i, 22)
Feuil4.Range("A" & i).Copy Feuil2.Range("A65000").End(xlUp).Offset(1, 0)
Feuil4.Range("M" & i).Copy Feuil2.Range("C65000").End(xlUp).Offset(1, 0)
Feuil2.Range("K65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("T" & i).Value
Next a
For a = 1 To Feuil4.Cells(i, 74)
Feuil4.Range("W" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("X" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("Y" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("Z" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AA" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AB" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AC" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AD" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AE" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AF" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AG" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AH" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AI" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AJ" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AK" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AL" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AM" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AN" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AO" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AP" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AQ" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AR" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AS" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AT" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AU" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AV" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AW" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AX" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AY" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("AZ" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BA" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BB" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BC" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BD" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BE" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BF" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BG" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BH" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BI" & i).Copy Feuil2.Range("J65000").End(xlUp).Offset(1, 0)
Feuil4.Range("BJ" & i).Copy Feuil2.Range("B65000").End(xlUp).Offset(1, 0)
Next a
Feuil1.Range("A65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("A" & i).Value
Feuil1.Range("B65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("B" & i).Value
Feuil1.Range("C65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("C" & i).Value
Feuil1.Range("D65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("D" & i).Value
Feuil1.Range("E65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("CQ" & i).Value
Feuil1.Range("F65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("F" & i).Value
Feuil1.Range("G65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("G" & i).Value
Feuil1.Range("H65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("H" & i).Value
Feuil1.Range("I65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("I" & i).Value
Feuil1.Range("J65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("J" & i).Value
Feuil4.Range("K" & i).Copy Feuil1.Range("K65000").End(xlUp).Offset(1, 0)
Feuil4.Range("L" & i).Copy Feuil1.Range("L65000").End(xlUp).Offset(1, 0)

Feuil1.Range("M65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("M" & i).Value
Feuil1.Range("N65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("N" & i).Value
Feuil1.Range("O65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("O" & i).Value
Feuil1.Range("P65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("P" & i).Value
Feuil1.Range("Q65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("Q" & i).Value
Feuil1.Range("R65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("R" & i).Value
Feuil1.Range("S65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("S" & i).Value
Feuil1.Range("T65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("T" & i).Value
Feuil1.Range("U65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("U" & i).Value
Feuil1.Range("V65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("CL" & i).Value
Feuil1.Range("W65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BL" & i).Value
Feuil1.Range("X65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BM" & i).Value
Feuil1.Range("Y65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BN" & i).Value
Feuil1.Range("Z65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BO" & i).Value
Feuil1.Range("AA65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BP" & i).Value
Feuil1.Range("AB65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BQ" & i).Value
Feuil1.Range("AC65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BR" & i).Value
Feuil1.Range("AD65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BS" & i).Value
Feuil1.Range("AE65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BT" & i).Value
Feuil4.Range("BU" & i).Copy Feuil1.Range("AF65000").End(xlUp).Offset(1, 0)
Feuil1.Range("AG65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BV" & i).Value
Feuil1.Range("AI65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BW" & i).Value
Feuil1.Range("AH65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("CK" & i).Value
Feuil1.Range("AK65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("BY" & i).Value
Feuil1.Range("AL65000").End(xlUp).Offset(1, 0).Value = Feuil4.Range("CM" & i).Value
Next i
 

Gardien de phare

XLDnaute Accro
Re : copier coller

Bonjour,

le code n'est pas très joli, sur :eek:, mais il est surtout absolument illisible comme ça, sauf à vouloir vraiment se faire du mal !

Tu ne pourrais pas mettre un classeur en exemple avec des données bidons et nous dire je voudrais coller telle plage de telle feuille à tel endroit de telle feuille ? Étonné par le nombre de XlUp, un doute sur le "a" dimensionné en "integer".
 

Mitch

XLDnaute Occasionnel
Re : copier coller

Bon voici mon fichier avec plus d'explications, quand je clique sur le bouton "dupliquer les déclinaisons" je copie certaine cellule de la feuille "Nouveaux articles" vers la feuille "Produits" mais les colonnes I,J K,L doivent garder le même ordre , alors que la ellles remontent pour combler les cellules vides
 

Pièces jointes

  • modèle.xlsm
    813.4 KB · Affichages: 46
  • modèle.xlsm
    813.4 KB · Affichages: 63
  • modèle.xlsm
    813.4 KB · Affichages: 59

Discussions similaires

Réponses
6
Affichages
247

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 206
dernier inscrit
diambote