Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Michel a été le plus prompt mais je t'envoie quand même m'a proposition (peut-être la même...)
Public Sub copy()
Dim plag As Range
Dim cel As Range
Set plag = Sheets("Base").Range("B1:B" & Sheets("Base").Range("B65536").End(xlUp).Row)
For Each cel In plag
For x = 1 To cel.Value
If Sheets("Transfert").Range("A1").Value = "" Then
Set plag2 = Sheets("Transfert").Range("A1")
Else
Set plag2 = Sheets("Transfert").Range("A65536").End(xlUp).Offset(1, 0)
End If
cel.EntireRow.copy Destination:=plag2
Next x
Next cel
End Sub
Merci pour ta macro: en effet, au départ j'étais parti sur la même idée que toi; puis je me suis dit que s'il y avait beaucoup de lignes on devrait aller beaucoup plus rapidement avec un tableau ou une collection intermédiaire...
Donc, j'ai copier-coller ta macro dans le classeur et ajouter un compteur de temps d'éxécution (je n'en suis pas l'auteur: il s'agit de RB smissaert /mpep) pour comparer nos 2 bidouilles sur 2000 lignes
Il y a pas photo: 15,6 secondes pour la solution "copie/copie" et 7,7 secondes pour la solution "collection intermédiaire"
je t'envoie la bête: c'est en comparant nos solutions qu'on progresse toi et moi et c'est l'intérêt majeur de ce forum
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.