re
voyons voir
si je comprent bien
tu copie la valeur de la cellules( ligne ,col 8) dans la plage (ligne,39) sur 10 ligne c'est bien ca
aurais tu entendu parler de resize des fois
donc j'analyse
on boucle de 2 a 331 sur les lignes
on determine lignebis
lignebis = (ligne * 10) - 18
alors c'est le sommum
autrement dit ici pour chaque ligne tu crée un plage de 10 cellule sur 1 colonne (la 39)
Range(Cells(lignebis, 39).Address & ":" & Cells(lignebis + 9, 39).Address).Value = Cells(ligne, 8).Value
je dis que tu aurais pu ecrire tout simplement
Range(Cells(lignebis, 39), Cells(lignebis + 9, 39)).Value = Cells(ligne, 8).Value
mais moi perso j'aurais ecrit
cells(lignebis,39).resize(10,1)=cells(ligne,8)
c'est de suite plus clair la d'un coup
il y aurait encore a dire sur ces 3 toute petites lignes de code
notament l'interet d'englober cela dans un with activesheet par exemple
1 2 3 4 5 6 7 8
| Sub copie()
with activesheet' ou with sheets("nom du sheets") au cas ou la macro tournerait et que le sheets concerné ne soit pas le sheets actif
For ligne = 2 To 331
lignebis = (ligne * 10) - 18
.cells(lignebis,39).resize(10,1)=.cells(ligne,8)
Next
end with
End Sub |
on aurait pu envisager aussi une autre forme de calcul
1 2 3 4 5 6 7 8 9
| Sub copie()
With ActiveSheet ' ou with sheets("nom du sheets") au cas ou la macro tournerait et que le sheets concerné ne soit pas le sheets actif
lignebis = 2
For ligne = 2 To 331
.Cells(lignebis, 39).Resize(10, 1) = .Cells(ligne, 8)
lignebis = 2 + 10 * (ligne - 1)
Next
End With
End Sub |
ouais c'est un peu plus clair la d'un coup
Partager