XL 2013 Erreur de zone copier coller

louloubru

XLDnaute Junior
Bonjour à tous,
j'essaie de copier coller les lignes dont la valeur dans la colonne V vaut 1 dans une autre feuille.
Avec le code suivant j'ai un message d'erreur me disant que les tailles des zones copiées et des zones de collage sont différentes ce qui empêche le programme de fonctionner.
C'est la ligne : Cells(NumLig, 1).EntireRow.Select ActiveSheet.Paste qui pose problème. J'ai également essayé d'enlever "EntireRow" de cette ligne sans succès...
Pourriez-vous m'aider ?

Merci d'avance !

VB:
Sub copcolligne()

Dim Lig As Long

Dim Col As String

Dim NbrLig As Long

Dim NumLig As Long

Sheets("Liste_Bulletin_veille").Activate ' feuille de destination

Col = "V" ' colonne du bulleton de veille : colonne où cela doit être égal à 1

NumLig = 0

With Sheets("PNR-Envt") ' feuille source

NbrLig = .Cells(65536, Col).End(xlUp).Row

    For Lig = 1 To NbrLig

    If .Cells(Lig, Col).Value = 1 Then

    .Cells(Lig, Col).EntireRow.Copy

    NumLig = NumLig + 1

    Cells(NumLig, 1).EntireRow.Select ActiveSheet.Paste

    End If

    Next

    End With

End Sub
 

Jacky67

XLDnaute Accro
Bonjour à tous,
j'essaie de copier coller les lignes dont la valeur dans la colonne V vaut 1 dans une autre feuille.
Avec le code suivant j'ai un message d'erreur me disant que les tailles des zones copiées et des zones de collage sont différentes ce qui empêche le programme de fonctionner.
C'est la ligne : Cells(NumLig, 1).EntireRow.Select ActiveSheet.Paste qui pose problème. J'ai également essayé d'enlever "EntireRow" de cette ligne sans succès...
Pourriez-vous m'aider ?

Merci d'avance !

VB:
Sub copcolligne()

Dim Lig As Long

Dim Col As String

Dim NbrLig As Long

Dim NumLig As Long

Sheets("Liste_Bulletin_veille").Activate ' feuille de destination

Col = "V" ' colonne du bulleton de veille : colonne où cela doit être égal à 1

NumLig = 0

With Sheets("PNR-Envt") ' feuille source

NbrLig = .Cells(65536, Col).End(xlUp).Row

    For Lig = 1 To NbrLig

    If .Cells(Lig, Col).Value = 1 Then

    .Cells(Lig, Col).EntireRow.Copy

    NumLig = NumLig + 1

    Cells(NumLig, 1).EntireRow.Select ActiveSheet.Paste

    End If

    Next

    End With

End Sub
Bonjour,
Avec ton code un peu modifié
VB:
Sub copcolligne()
    Dim Lig As Long
    Dim NbrLig As Long
    Dim NumLig As Long
    Sheets("Liste_Bulletin_veille").Activate    ' feuille de destination
    Cells.ClearContents    'ajouter
    NumLig = 0
    With Sheets("PNR-Envt")    ' feuille source
        NbrLig = .Cells(65536, "v").End(xlUp).Row
        For Lig = 1 To NbrLig
            If .Cells(Lig, "v").Value = 1 Then
                NumLig = NumLig + 1
                .Rows(.Cells(Lig, "v").Row).Copy Cells(NumLig, 1)    'modifier
            End If
        Next
    End With
End Sub
 

louloubru

XLDnaute Junior
Bonjour,
merci beaucoup,
ça fonctionne pour moi mais c'est étrange j'ai du copier le code dans un autre module et relancer excel. Sinon cela ne fonctionnait pas, j'avais "La méthode clear de l'objet Range a échoué" ou encore la méthode Copy de l'objet range a échoué lorsque j'ai enlevé l'instruction clear.
Je ne comprends pas ce problème et n'ai rien changé de particulier, j'ai donc peur que cela se reproduise...

Pour l'instant tout roule en tout cas merci beaucoup !
 

Discussions similaires


Haut Bas