Code VBA, bug avec ActiveSheet.Paste

Bonjour à tous,

J'ai fait un code pour pouvoir insérer sur une centaine de lignes, 8 autres lignes tout en collant régulièrement les même 8 lignes :

Sub Solution_Finale()

Dim numero As Integer

numero = 1

While numero <= 20

'J'insère mes huits lignes

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

'Je passe de la sélection de la colonne entière à la case à côté (droite-gauche en gros)

ActiveCell.Offset(0, 1).Select

ActiveCell.Offset(0, -1).Select

'Je copie ma colonne de 8 cases

ActiveSheet.Paste

'Je sélectionne la 9e case en dessous

ActiveCell.Offset(9, 0).Select

'Je resélectionne ma ligne

ActiveCell.EntireRow.Select

numero = numero + 1

Wend

End Sub

Mais cela ne fonctionne pas, le code bug à ActiveSheet.Paste... (il n'insère que les 8 lignes une fois)

J'ai cru comprendre que c'était une histoire d'objet mais je n'y comprends pas grand chose

Pourriez-vous m'aider svp ?

Cordialement,

Merci

Je mets le code de la bonne manière (je ne comprends pourquoi tout s'affiche en rouge :/)

Sub Solution_Finale()
    Dim numero As Integer
    numero = 1
    While numero <= 20
        'J'insère mes huits lignes
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

        'Je passe de la sélection de la colonne entière à la case à côté (droite-gauche en gros)
        ActiveCell.Offset(0, 1).Select
        ActiveCell.Offset(0, -1).Select

        'Je copie ma colonne de 8 cases
        ActiveSheet.Paste

        'Je sélectionne la 9e case en dessous
        ActiveCell.Offset(9, 0).Select

        'Je resélectionne ma ligne
        ActiveCell.EntireRow.Select

        numero = numero + 1
    Wend
End Sub

Je bide tout le temps sur ce forum

up

up

up

STOOOOOP !!! Tu ne recevras pas de réponse dans la minute, c'est normal ! Donc cesse de spammer ! On va se pencher sur ton soucis...

Pour pas que tu sois trop frustré, puisque je vais aller manger entre temps, voilà quelque chose à te mettre sous la dent :

ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -1).Select

Ces deux lignes sont sans effet, puisque la seconde à l'effet inverse de la première (et s'annulent donc !).

Second point :

ActiveSheet.Paste

Paste --> signifie "coller", mais pour ça il faudrait déjà avoir copié ! Si pas de copie, on a rien à coller !

Maintenant, si tu veux donner toutes les chances d'avoir une réponse rapide et précise, transmet un fichier représentatif sur lequel pourrait s’exécuter ta macro.

Peux-tu expliciter clairement (et avec un fichier de préférence) ton objectif (indépendamment de ce code-ci) ?

Rechercher des sujets similaires à "code vba bug activesheet paste"