Message d'erreur

Résolu
Signaler
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006
-
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006
-
Bonjour,je suis débutant.
Lorsque je démarre ma macro j'ai ce message: Erreur d'exécution '424',Objet requis.
Si qq1 peut me m'expliquer la sinification de ce message d'avance merci pour l'heure je continu à chercher.

16 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
tu les cumules dit donc...
t'as relus ton code?!

1er point :
je vais te traduire ce que tu as demandé au Click 1 :

If txtMotDePasse = "chien" Then
MsgBox " code valide", vbOKOnly
ElseIf Len(txtMotDePasse) < 15 Then
ElseIf Len(txtMotDePasse) > 4 Then
MsgBox " Echec de la saisie du mot de passe" & vbCr & "La commande ne peut etre exécutée", vbOKOnly + vbExclamation, "Mot de passe incorrect"

si la Variable (qui n'est jamais modifiée, puisque txtMotDePasse ne reçoit jamais TextBox1....) contient "CHIEN" alors message
sinon si la variable contient - de 15 caractères alors ne fait rien (donc il ne fait rien puisque len = 0)
sinon si elle en contient + de 4 (exemple "CHIEN"=5. 4<5<15. y'a rien qui te choque?) alors message

2e point, tu n'as pas à refaire le test au TextBox1_Change.
Quand tu Click, là tu fais tes opéreations, c'est tout.

3e :
traduction de click2
Unload Me
MsgBox "fin de la commande"
End

tu click
tu demandes de décharger la feuille (çà ok)
mais après avoir décharger, tu demandes un msgbox?
à qui, une feuille déchargée?
et après le click, tu la redécharges violemment?!!!

Msgbox "Fin", 32, "Terminé"
Unload Me

çà suffit amplement

4e :
tu utilises une UserForm4 ? un document utilisateur? ou c'est une forme classique à laquelle tu as pondues une fonction de fermerture?!!

là faut m'expliquer l'intérêt.
un Form Classique est le seul document approprié pour ton utilisation.

j'espère t'avoir un peu éclairé....
PCPT
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
ok, c'est reparti :

test1 :

txtMDP="bonjour" (donc Len = 6)

SI txtMDP<> "chien" (="bonjour" donc ok) ET len>3 (6>3 = ok) ET len<16 (6<16 = ok)
ALORS "TU L'AS DANS L'OS JUSQU'A LA MOELLE"
...

test2 :
txtMDP "umm" (donc len 3)

SI txtMDP<> "chien" (="umm" donc ok) ET len>3 (3 pas>3 = GOTO ELSE) ET len<16 (3<16 = ok)
ALORS ....
ELSE
"ON EST DANS LA CLAUSE DU len entre 0 et 3"

j'ai pas dit que c'était bien de cette manière, j'ai refait proprement ce que tu avais traduit de ce que tu pensais avoir fait ;)

ouaip???
++
PCPT
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
(bonjour = 7 )
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonjour,

Voici ce que dit l'aide. Vous avez fait référence à une propriété ou une méthode d'object, mais vous n'avez pas fourni de qualificateur d'object. Vérifie dans ton code les objects auquels tu te réfères.

Sinon, met ton code ici, que l'on puisse t'aider.

joleroisse
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Salut,
Tu as surement mal typé une variable que tu utilises comme objet.
Du genre :

Dim db As String
Set db = opendatabase("c:\temp\bd1.mdb")

sinon, mets le bout de code où ça plante .

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut'
tu as pu, par exemple, commencer une fonction faisant un appel à un contrôle que tu as renommé.
ex :
MaFonction(Blablabla)....
Text1="peu importe"

et tu as renommé Text1 qui n'existe donc plus ;)
PCPT
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Merci à jpleroisse,CanisLupus et pcpt pour leur traduction.
Voici le code de ma userform j'ai revérifié tout les object et ils me paraissent tous déclarés alors si vous voyez qq chose d'anormal signalez le moi.

userform4:

Public textMotDePasse as string
Private Sub valider_Click()
Static compteur As Byte
compteur = compteur + 1
If txtMotDePasse.text = "chien" then
Else
If compteur = 3 thenMsgBox " Echec de la saisie du mot de passe" & vbCr & "La commande ne peut etre exécutée" vbOKOnly + vbExclamation "Mot de passe incorect "
txtMotDePasse.Value=""
txtMotDePasse.SetFocus
Me.caption = "Entrez le mot de passe & Tentative & Compteur + 1 & sur &3"
End if
End if
End sub
Private sub annuler_Click()
Unload Me
MsgBox "Cette commande ne peut etre exécutée sans le mot de passe " , vbOKOnly + vbExclamation, "fin de la commande"
End
End Sub
Private Sub userform_Initialize()
txtMotDePasse.Value=""
txtMotDePasse.SetFocus
Ens Sub
Private Sub Userform_Close(Cancel as integer, closeMose as integer)
If closeMode = vbFormControlMenu then
Me.Hide
MsgBox " Cette commande ne peut etre exécutée sans le mot de passe" , vbOKOnly + vbExclamation, "Fin de la commande"
End
End if
End sub
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
la voilà ton erreur :
txtMotDePasse.Value
un TxtBox n'a pas de valeur. remplace par txtMotDePasse.Text
j'ai pas regardé le reste. tu peux aussi, tant qu'à faire, changer ton Type de compteur en Integer. je ne vois pas l'intérêt en Byte...

et pour le permier MsgBox, remplace tes "=" par des ","

PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
premier* ;)
et ton caption, il doit pas être très lisible non plus....
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Merci pcpt,j'ai fais ce que tu m'as proposé,au niveau du débogage cela passe de la meme manière et je retombe toujours sur le meme message d'erreur donc je vais effectivement me pencher sur mon caption.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
oui oui
qqc tel que Me.caption = "Entrez le mot de passe : tentative n° " & (Compteur + 1) & " sur 3"
serait plus approprié.

pense à valider le message s'il est résolu ;)
PCPT
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Voila ou j'en suis et maintenant j'ai un soucis avec le commandbutton1 qui ne valide pas le mot de passe.

Option Explicit
Dim txtMotDePasse As String

Private Sub CommandButton1_Click()
If txtMotDePasse = "chien" Then
MsgBox " code valide", vbOKOnly
ElseIf Len(txtMotDePasse) < 15 Then
ElseIf Len(txtMotDePasse) > 4 Then
MsgBox " Echec de la saisie du mot de passe" & vbCr & "La commande ne peut etre exécutée", vbOKOnly + vbExclamation, "Mot de passe incorrect"
End If
End Sub

Private Sub CommandButton2_Click()
Unload Me
MsgBox "fin de la commande"
End
End Sub
Private Sub UserForm4_Initialize()
txtMotDePasse = ""
End Sub


Private Sub UserForm4_Close(Cancel As Integer, closeMode As Integer)
If closeMode = vbFormControlMenu Then
Me.Hide
MsgBox "Cette commande ne peut être exécutée sans le mot de passe", vbOKOnly + vbExclamation, "Fin de la commande"
End
End If
End Sub

Private Sub TextBox1_Change()
If txtMotDePasse = "chien" Then
MsgBox " code valide", vbOKOnly
ElseIf Len(txtMotDePasse) < 15 Then
ElseIf Len(txtMotDePasse) > 4 Then
MsgBox " Echec de la saisie du mot de passe" & vbCr & "La commande ne peut etre exécutée", vbOKOnly + vbExclamation, "Mot de passe incorrect"
End If
End Sub


Si qq1 à une idée
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Voici ce que je pensais avoir traduit

Je veux que si le mot de passe est correct alors qu'il affiche un message me disant que le code est valide
sinon si le mot de passe entré par l'utilisateur est different (compris entre 4 et 15)qu'il m'affiche un message d'erreur.

Sinon je n'ai pas compris ce que tu appelle un form classique???????
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
pour la "Form classique", c'est une erreur de part (j'avais oublié que tu étais en VBA. Form pour VB6)

ta "traduction" aurait donné ceci (sans pour autant être utile....) :

'on suppose que pour cet exemple, TxtMDP contient vraiment une valeur
if ((TxtMDP <> "chien") and (len(TxtMDP) > 3) and (len(TxtMDP) < 16)) then
MsgBox "Mot de Passe Invalide"
'là tu peux mettre ton compteur, pour le nombre tentatives que tu as apparemment abandonné
else
MsgBox "Soit le MDP est correct, soit il contient entre (0 et 3) ou (16 ++++) caractères"
end if

PCPT
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Effectivement je suis sur VBA.

J'ai essayé de le poser autrement avec une autre condition grace à else mais en fait il me

demande de lme remplacer par un elseif donc je vais essayer ta solution avec and et and.

Merci PCPT mais je pense que tel que tu poses les conditions le MDP est >3 et <16
et non <3 et >16 caractères
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Sympas ton message,effectivement j'essaye de le faire d'une autre manière.Merci pour cet algorebus