Erreur 1004 sur Programme de copie de lignes
Bonjour à tous,
J'ai une erreur sur le code ci-dessous. Le programme me permet de copier les lignes d'une feuille 1 qui n'existent pas dans une feuille 2.
Sub test()
Dim Lot As Range
Dim LotSearch As Range
Dim NumLigne As Integer
Dim i As Integer
Dim g As Integer
Application.ScreenUpdating = False
With Sheets("Export_MOVEX")
NumLigne = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'Première cellule vide
End With
With Worksheets("Export_Movex")
For i = 8 To NumLigne
Set Lot = Sheets("Export_Movex").Cells(i, 9)
Set LotSearch = Worksheets("SUIVI_PRELEVEMENT").Range("N:N").Find(what:=Lot, LookIn:=xlValues, lookat:=xlWhole)
If LotSearch Is Nothing Then
Sheets("Export_Movex").Columns("A:O").Rows(i).Copy
g = Sheets("Suivi_Prelevement").Cells(6800, 6).End(xlUp).Row + 1
Sheets("SUIVI_PRELEVEMENT").Cells(g, 6).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Next i
End With
Application.ScreenUpdating = True
End Sub
J'obtiens une erreur "Erreur d'exécution 1004 : La méthode Select de la classe Range à échoué" sur la ligne Sheets("SUIVI_PRELEVEMENT").Cells(g, 6).Select. Des idées sur la raison du problème ?
Je vous remercie d'avance pour votre aide
- Messages
- 308
- Excel
- 2016
- Inscrit
- 15/06/2017
- Emploi
- Bénéficiaire de la sécurité de la vieillesse
Bonjour vasille, bonjour le forum
Quand on utilise Cells, on écrit Cells(la ligne, la colonne).
Sheets("SUIVI_PRELEVEMENT").Cells(6, "G").Select si on utilise la lettre de la colonne.
ou
Sheets("SUIVI_PRELEVEMENT").Cells(6, 7).Select si on utilise le numéro de la colonne.
Joseph
retraite8 a écrit :Bonjour vasille, bonjour le forum
Quand on utilise Cells, on écrit Cells(la ligne, la colonne).
Sheets("SUIVI_PRELEVEMENT").Cells(6, "G").Select si on utilise la lettre de la colonne.
ou
Sheets("SUIVI_PRELEVEMENT").Cells(6, 7).Select si on utilise le numéro de la colonne.
Joseph
Bonjour Joseph et je te remercie pour ta réponse. Cependant, le g que j'utilise ici est en fait une variable au même titre que i, je souhaite donc sélectionner la cellule qui est à ( g , 6 ) où est g est définit lors de la ligne précédente à l'aide du code
g = Sheets("Suivi_Prelevement").Cells(6800, 6).End(xlUp).Row + 1
EDIT : J'en profite pour rajouter qu'après quelques recherches, il semblerait que ce soit parceque j'essaie de copier des données d'un tableau pouvant comporter des filtres vers un tableau pouvant en comporter aussi. Des idées ?
- Messages
- 308
- Excel
- 2016
- Inscrit
- 15/06/2017
- Emploi
- Bénéficiaire de la sécurité de la vieillesse
Bonjour vasille, bonjour le forum
Ouupppssss! Je vais nettoyer mes lunettes.
Pour sélectionner une cellule, il faut sélectionner la feuille avant.
g = Sheets("Suivi_Prelevement").Cells(6800, 6).End(xlUp).Row + 1
Sheets("SUIVI_PRELEVEMENT").select
Sheets("SUIVI_PRELEVEMENT").Cells(g, 6).Select
Mais teste donc sans sélectionner la cellule comme ceci
g = Sheets("Suivi_Prelevement").Cells(6800, 6).End(xlUp).Row + 1
Sheets("SUIVI_PRELEVEMENT").Cells(g, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Désolé pour le manque d'attention.
Joseph
retraite8 a écrit :Bonjour vasille, bonjour le forum
Ouupppssss! Je vais nettoyer mes lunettes.
Pour sélectionner une cellule, il faut sélectionner la feuille avant.
g = Sheets("Suivi_Prelevement").Cells(6800, 6).End(xlUp).Row + 1 Sheets("SUIVI_PRELEVEMENT").select Sheets("SUIVI_PRELEVEMENT").Cells(g, 6).Select
Mais teste donc sans sélectionner la cellule comme ceci
g = Sheets("Suivi_Prelevement").Cells(6800, 6).End(xlUp).Row + 1 Sheets("SUIVI_PRELEVEMENT").Cells(g, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
Désolé pour le manque d'attention.
Joseph
Rebonjour Joseph,
Effectivement.. J'ai oublié de select la feuille avant de select la cellule, belle erreur de ma part. Cela fonctionne parfaitement, je te remercie pour ton aide !