Signaler

Run time error : 1004 [Résolu]

Posez votre question Ch1ken 55Messages postés vendredi 10 avril 2009Date d'inscription 19 avril 2017 Dernière intervention - Dernière réponse le 26 janv. 2017 à 21:32 par Patrice33740
Bonjour,

Je travaille pour une école et j'ai créé un petit fichier de gestion des notes des élèves mais je rencontre un problème étrange sur mon code. Voici le code en question :

Sub oldMarksDacomo()
ActiveSheet.Unprotect
For Each cell In Range("B3:M9,K11:M19")
If cell.Interior.Color = RGB(51, 153, 255) Or cell.Interior.Color = RGB(204, 102, 255) Then
cell.Interior.Color = RGB(200, 173, 127)
cell.AddComment "Dernière validation par Joël Dacomo"
Range("D27") = Format(Now, "dd.mm.yy hh:mm")
End If
Next
For Each cell In Range("B3:M9,K11:M19")
Set Cel_Comment = cell.Comment
If Not Cel_Comment Is Nothing Then
If cell.Comment.Text = "Dernière validation par Arganthaël Castella" Then
cell.Interior.Color = RGB(255, 255, 255)
cell.ClearComments
Range("D27") = Format(Now, "dd.mm.yy hh:mm")
End If
End If
Next
ActiveSheet.Protect
End Sub

Sub oldMarksCastella()
ActiveSheet.Unprotect
For Each cell In Range("B3:M9,K11:M19")
If cell.Interior.Color = RGB(51, 153, 255) Or cell.Interior.Color = RGB(204, 102, 255) Then
cell.Interior.Color = RGB(200, 173, 127)
cell.AddComment "Dernière validation par Arganthaël Castella"
Range("H27") = Format(Now, "dd.mm.yy hh:mm")
End If
Next
For Each cell In Range("B3:M9,K11:M19")
Set Cel_Comment = cell.Comment
If Not Cel_Comment Is Nothing Then
If cell.Comment.Text = "Dernière validation par Joël Dacomo" Then
cell.Interior.Color = RGB(255, 255, 255)
cell.ClearComments
Range("H27") = Format(Now, "dd.mm.yy hh:mm")
End If
End If
Next
ActiveSheet.Protect
End Sub

Sub newMarks(Target, cell)
Dim value
ActiveSheet.Unprotect
value = ThisWorkbook.getValue()
If Not Intersect(Target, Range("B3", "M9")) Is Nothing Or Not Intersect(Target, Range("K11", "M19")) Is Nothing Then
cell = Target.Address
If value = "" Then
Range(cell).Interior.Color = RGB(51, 153, 255)
Else
Range(cell).Interior.Color = RGB(204, 102, 255)
Range(cell).ClearComments
End If
End If
ActiveSheet.Protect
End Sub


Ce code ne fonctionne que si je met l'avant dernière ligne (ActiveSheet.Protect) en commentaire car sinon je reçois l'erreur 1004 : Application-defined or object-defined error .... Cette erreur est très embetante car j ai effectué tous mes tests avec les pages non protégées donc je ne l ai pas décelée et c'est une personne qui l utilise qui m'a averti ...

Est-ce que quelqu un a une idée ? Je suis obligé de protégé les feuilles, je ne peux pas me contenter de supprimer cette ligne.

Merci d'avance
Afficher la suite 
Utile
+0
plus moins
l'erreur est sur quelle ligne ?

Commences par déclarer toutes les variables que tu utilises.
Pour cela, met :
Option Explicit
en début de module
Cordialement
Patrice
Ch1ken 55Messages postés vendredi 10 avril 2009Date d'inscription 19 avril 2017 Dernière intervention - 26 janv. 2017 à 08:58
L'erreur se trouve visiblement à l'avant dernière ligne, c'est à dire ActiveSheet.Protect

Si je mets cette ligne en commentaire, mon programme fonctionne, mais voilà la feuille ne sera pas protégée et il faut pour moi qu'elle le soit.
Répondre
f894009 11456Messages postés dimanche 25 novembre 2007Date d'inscription 21 avril 2017 Dernière intervention - 26 janv. 2017 à 09:06
Bonjour,

Ces trois procedures ont la meme erreur ?
Répondre
yg_be 2064Messages postés lundi 9 juin 2008Date d'inscription 23 avril 2017 Dernière intervention Ch1ken - 26 janv. 2017 à 09:16
bonjour, l'erreur disparaît quand tu mets cette ligne en commentaire. cela ne signifie pas que l'erreur se produit quand cette ligne est exécutée : il serait utile de savoir sur quelle ligne l'erreur se produit.
Répondre
Donnez votre avis
Utile
+0
plus moins
As-tu ajouté
Option Explicit
???
Ça devrait te permettre de résoudre au moins une source d'erreur !!!
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !