Erreur d'execution 424 : Objet requis

Résolu/Fermé
ThePlisskenism - 1 mars 2012 à 10:22
pijaku
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
- 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


A voir également:

9 réponses

f894009
Messages postés
16604
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
1 juillet 2022
1 647
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