Copier coller avec variable qui ne fonctionne pas

decricri

XLDnaute Nouveau
Bonjour a tout le monde et merci d'avance à eux qui pourront m'aider.

Voilà cela fait deux jours que j'essaie de trouver l'erreur dans le code en épiant les forums et rien de très intéressant sur ce cas. Je souhaite copier une colonne sur deux et la copier en dessous de même pour les autres colonnes qui sont entre mais plus en dessous. J'ai écrit un code qui paraît, selon moi, bon mais excel me sort un message d'erreur : erreur d'exécution 1004 cette sélection n'est pas valide. Raisons possibles :
Zone de copie et collage ne peuvent se superposer que si elles sont de dimension et de forme identiques.
Si vous utilisez la commande créer à partir de la sélection, la ligne ou la colonne contenant les noms proposes n'est pas incluse dans les...
En jaune en déboggage j'ai le activesheet.paste


Voici mon code avec mes commentaires, dites moi si vous trouvez la faille svp.

Sub Macro1()

Dim i, j As Integer ' Déclaration des variables
i = 3 ' Initialisation de i à 3
j = 3 'Initialisation de j à 3
For i = 3 To 204 'Lancement de la boucle pour i allant de 3 à 204
Range(i & "34:" & i & "74").Select 'Sélection de la plage (C34:C74 pour le premier i)
Application.CutCopyMode = False 'Vider le presse papier
Selection.Copy 'Copier la sélection
Range(j & "77:" & j & "117").Select 'sélection de la plage (C77:C117 pour le premier j)
ActiveSheet.Paste 'Coller sur la feuille active
i = i + 1 'Incrémentation de i
Range(i & "34:" & i & "74").Select 'Sélection de la plage (D34:D74 pour le premier tour de boucle)
Application.CutCopyMode = False 'Vider le presse papier
Selection.Copy 'Copier la sélection
Range(j & "119:" & j & "149").Select 'sélection de la plage (C119:C149 pour le premier j)
ActiveSheet.Paste 'Coller sur la feuille active
j = j + 1 'Incrémentation de j
Next i 'Passage au i suivant (soit i= i + 1) ici il passe donc à 4 et on repart en haut de la boucle

End Sub
 

ROGER2327

XLDnaute Barbatruc
Re : Copier coller avec variable qui ne fonctionne pas

Bonjour decricri


(...) Je souhaite copier une colonne sur deux et la copier en dessous de même pour les autres colonnes qui sont entre mais plus en dessous. (...)
Bien que j'ai du mal à comprendre cette phrase, je tente un essai .
VB:
Sub Macro1()

Dim i As Integer, j As Integer

    j = 3
    For i = 3 To 204
        Range(Cells(i, 34), Cells(i, 74)).Copy Destination:=Cells(j, 77)
        i = i + 1
        Range(Cells(i, 34), Cells(i, 74)).Copy Destination:=Cells(j, 119)
        j = j + 1
    Next i

End Sub
qui peut s'écrire aussi :
VB:
Sub Macro2()

    Dim i As Integer, j As Integer

    j = 3
    For i = 3 To 204 Step 2
        Range(Cells(i, 34), Cells(i, 74)).Copy Destination:=Cells(j, 77)
        Range(Cells(i + 1, 34), Cells(i + 1, 74)).Copy Destination:=Cells(j, 119)
        j = j + 1
    Next i

End Sub
ou :
VB:
Sub Macro3()

    Dim i As Integer, j As Integer

    j = 3
    For i = 3 To 204 Step 2
        With Cells(i, 34).Resize(1, 41)
            .Cells.Copy Destination:=Cells(j, 77)
            .Offset(1).Copy Destination:=Cells(j, 119)
        End With
        j = j + 1
    Next i

End Sub



ROGER2327
#6647


Jeudi 26 Palotin 140 (Sainte Prétentaine, rosière - fête Suprême Quarte)
26 Floréal An CCXXI, 4,5698h - fusain
2013-W20-3T10:58:03Z
 

ROGER2327

XLDnaute Barbatruc
Re : Copier coller avec variable qui ne fonctionne pas

Re...


pour être plus précis je veux séparer colonne impaire et paire j'essaie ton code de suite merci
Ce serait donc plutôt ceci :
VB:
Sub Macro1()

Dim i As Integer, j As Integer ' Déclaration des variables
    i = 3 ' Initialisation de i à 3
    j = 3 'Initialisation de j à 3
    For i = 3 To 204 'Lancement de la boucle pour i allant de 3 à 204
        Range(Cells(34, i), Cells(74, i)).Copy Destination:=Cells(77, j)
        i = i + 1 'Incrémentation de i
        Range(Cells(34, i), Cells(74, i)).Copy Destination:=Cells(119, j)
        j = j + 1 'Incrémentation de j
    Next i 'Passage au i suivant (soit i= i + 1) ici il passe donc à 5 et on repart en haut de la boucle

End Sub



ROGER2327
#6648


Jeudi 26 Palotin 140 (Sainte Prétentaine, rosière - fête Suprême Quarte)
26 Floréal An CCXXI, 5,1794h - fusain
2013-W20-3T12:25:50Z
 

Discussions similaires

Réponses
7
Affichages
367