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 à 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
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
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 !