Copy insert changeant

yadla

XLDnaute Occasionnel
Bonjour,

Je ne comprends pas, j'ai le code suivant :
Code:
.Rows(i + 1).Select
Selection.Copy
If nb_fois > 1 Then
    .Rows(i + 1 & ":" & i + nb_fois - 1).Select
End If
Selection.Insert Shift:=xlDown

Des fois j'ai bien la ligne copiée qui s'insère, des fois, j'ai uniquement des lignes vides... :confused::confused:

En fait, ce que je veux faire, c'est insérer x fois (x=nb_fois) la ligne copiée (elle contient des formules, une mise en forme particulière...).

Je ne comprends pas pourquoi des fois ca marche, et des fois ca ne marche pas... Et à chaque fois que je lance le programme c'est au meme endroit que ca ne marche pas... :confused::confused:

Quelqu'un a une idée ?

Merci d'avance !
 

yadla

XLDnaute Occasionnel
Re : Copy insert changeant

Je viens de trouver, Excel ne prends pas en compte à partir de 50 lignes à insérer.

Si j'ai 49 lignes c'est toujours OK, mais dès 50, la selection est trop longue.

Peut etre que ca servira à d'autres...

Si jamais vous connaissez un moyen de détourner la chose, pour pouvoir le faire quand meme, MERCI ! :)
 

Papou-net

XLDnaute Barbatruc
Re : Copy insert changeant

Bonjour,

Je ne comprends pas, j'ai le code suivant :
Code:
.Rows(i + 1).Select
Selection.Copy
If nb_fois > 1 Then
    .Rows(i + 1 & ":" & i + nb_fois - 1).Select
End If
Selection.Insert Shift:=xlDown

Des fois j'ai bien la ligne copiée qui s'insère, des fois, j'ai uniquement des lignes vides... :confused::confused:

En fait, ce que je veux faire, c'est insérer x fois (x=nb_fois) la ligne copiée (elle contient des formules, une mise en forme particulière...).

Je ne comprends pas pourquoi des fois ca marche, et des fois ca ne marche pas... Et à chaque fois que je lance le programme c'est au meme endroit que ca ne marche pas... :confused::confused:

Quelqu'un a une idée ?

Merci d'avance !

Bonjour yadla,

N'ayant pas l'intégralité de ton code sous les yeux, je peux me tromper mais voici mon avis :

Je pense que ça ne marche pas à chaque fois que nb est > à 1, pour la simple raison que si cette condition est remplie, tu sélectionnes une autre ligne. Donc, ta précédente sélection est effacée.

Espérant avoir compris.

Cordialement.
 

Efgé

XLDnaute Barbatruc
Re : Copy insert changeant

Bonjour yadla, Papou-net :),
Peut être une solution de contournement (insertion d'une seule ligne donc on peut répéter l'opération plus de 50 fois), mais il faut voir à l'utilisation si ce n'est pas trop long:
Code:
Sub test()
Application.ScreenUpdating = False
i = 50
nb_fois = 5
If nb_fois > 1 Then
    For k = 1 To nb_fois - 1
        Rows(i + 1).Copy
        Rows(i + 1).Insert Shift:=xlDown
    Next k
End If
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 298
Messages
2 086 981
Membres
103 419
dernier inscrit
mk29