Erreur d'execution 424 : Objet requis

Résolu/Fermé
ThePlisskenism - 1 mars 2012 à 10:22
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 1 mars 2012 à 16:32
Bonjour à tous,

j'ai un problème sur Excel, dans la programmation de mon fichier. J'ai cherché un peu partout sur le Net mais je n'ai pas trouvé réponse exacte à mon problème. Je vous explique :

J'ai un fichier qui me donne un listing de projets. Au bout du tableau, j'ai placé deux colonnes qui, lorsqu'on inscrit un "x" dans la case, transfère la ligne sur une autre feuille.
Pourquoi j'ai crée deux colonnes ? Pour transférer certaines lignes sur une feuille et d'autres sur une autre feuille.
Donc, vient mon problème, lorsque je tape "x" dans la première colonne, j'ai le message "erreur d'execution 424 : Objet requis"; alors que dans la deuxième colonne je ne l'ai pas. J'ai cvompris qu'il me manqué une instruction dans la deuxième partie du programme mais je ne vois pas laquelle.

Si quelqu'un avait une idée, ça me serait utile. Merci pour vos réponses. Je joints mon programmeci-dessous.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLigne As String
Dim i As Byte
If Target.Count = 1 Then
If Left(Target.Address, 3) = "$BD" _
And LCase(Target.Value) = "x" Then
With Sheets("Projets terminés")
i = Target.Offset(1, 0).Row - Target.Row
DerLigne = .Cells(.Columns(1).Cells.Count, "D").End(xlUp).Row + 1
' Cells(Target.Row, 1).Resize(i, 55).Copy Destination:=.Cells(DerLigne, 1)
Cells(Target.Row, 1).Resize(i, 55).Copy

'.Range("A" & .Columns(1).Cells.Count).End(xlUp) = Now
.Cells(DerLigne, 56).Value = ActiveSheet.Name
Feuil3.Activate
.Cells(DerLigne, 1).Select
'Feuil3.Paste (Cells(DerLigne, 1))

ActiveSheet.Paste
'Selection.Paste
Rows(Target.Row).Resize(i).Delete Shift:=xlUp
End With
End If
End If

'Sheets("Suivi des comptes").Cells(1, 1).Activate

If Target.Count = 1 Then
If Left(Target.Address, 3) = "$BF" _
And LCase(Target.Value) = "x" Then
With Sheets("Projets quitussables")
i = Target.Offset(1, 0).Row - Target.Row
DerLigne = .Cells(.Columns(1).Cells.Count, "D").End(xlUp).Row + 1
' Cells(Target.Row, 1).Resize(i, 55).Copy Destination:=.Cells(DerLigne, 1)
Cells(Target.Row, 1).Resize(i, 55).Copy

'.Range("A" & .Columns(1).Cells.Count).End(xlUp) = Now
.Cells(DerLigne, 56).Value = ActiveSheet.Name
Feuil4.Activate
.Cells(DerLigne, 1).Select
'Feuil4.Paste (Cells(DerLigne, 1))

ActiveSheet.Paste
'Selection.Paste
Rows(Target.Row).Resize(i).Delete Shift:=xlUp
End With
End If
End If

'Sheets("Suivi des comptes").Cells(1, 1).Activate
End Sub


9 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 1/03/2012 à 10:50
Bonjour,


Cells(DerLigne, 1).Select

si la cellule selectionnee est une cellule de la feuil3, il ne faut pas mettre de point devant sinon c'est une cellule de l'onglet "Projets terminés".


Idem pour la feuil4

A suivre

Bonne suite
2