erreur 424, objet requis

  • Initiateur de la discussion carlos
  • Date de début
C

carlos

Guest
Bonjour ,


il doit me manquer qq chose sur la declaration de l'objet mais quoi ???

Sub informerrepartition()
Dim restant As Byte
Dim informer As Variant
NombreEleveDisp
restant = Cells(2, 2).Value - (Int(Cells(2, 2).Value / Cells(12, 1).Value) * Cells(12, 1).Value)
informer = Cells(2, 2).Value & ' joueurs répartis en ' _
& Int(Cells(2, 2).Value / Cells(12, 1).Value) & ' poules de ' _
& Cells(12, 1).Value _
& IIf(restant <> 0, ' et une poule de ' _
& restant _
& ' joueur(s)', '')
End Sub


Private Sub NBEL_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim informer As Variant
informerrepartition
NBEL.Caption = informer.Value
End Sub

Merci
 
F

fudô

Guest
Bonjour Carlos,

Pourrais tu nous passer le programme en pièce jointe, parceque j'ai l'impression qu'il manque des choses.

NombreEleveDisp n'est pas défini et je ne vois pas trop comment marche Private Sub NBEL_MouseUp.
 
C

carlos

Guest
Bonjour fudô

Le probleme est que mon fichier est trop gros .

NombreEleveDisp est une macro ordinaire

Sub NombreEleveDisp()
Dim Cellule As Range
Dim total As Variant
Dim NbEleveClasse As Byte, NombreEleveDispensés As Byte
NbEleveClasse = Application.WorksheetFunction.CountA(Range('EleveClasse'))
'eleves dispensés
For Each Cellule In Sheets('classe').Range('d4:d44')
If Cellule.Interior.ColorIndex > 2 Then
total = total + Cellule.Count
End If
Next
'eleves joueurs
NombreEleveDispensés = NbEleveClasse - total
Range('b2') = NombreEleveDispensés
End Sub
MErci
 

Rai

XLDnaute Junior
Salut,

Je n'ai pas bien compris quelle ligne générait l'erreur 424.

Peux-tu, stp, nous dire quelle ligne est surlignée en jaune fluo lors du déclenchement de l'erreur ?

Et, concernant la taille de ton fichier, même avec Winzip y dépasse les 50Ko ??

Dans ce cas, si tu veux bien, passe-le moi directement à mon mail.
 
C

carlos

Guest
Re bonjour

g qq precisions en plus


erreur de compilation : ' Qualificateur incorrect' sur informer.


Je rappelle que informer est une variable d'un module declaré en private /

informer = Cells(2, 2).Value & ' joueurs répartis en ' _
& Int(Cells(2, 2).Value / Cells(12, 1).Value) & ' poules de ' _
& Cells(12, 1).Value _
& IIf(restant <> 0, ' et une poule de ' _
& restant _
& ' joueur(s)', '')


peut etre que ca peux faire avancer le ch'millblique

merci
 

Rai

XLDnaute Junior
re-,

OK je vois mieux maintenant.

En fait c'est assez clair :
- NBEL existe, puisqu'on vient de cliquer dessus

- informer par contre n'est pas un objet mais une variable (comme l'analyse aussi Visiteur). Une variable n'a pas de propriétés.

Donc ta ligne s'écrira :
NBEL.Caption = informer

et ne devrait plus générer d'erreur.


Ca marche ??

Message édité par: Rai, à: 17/04/2005 13:10
 
C

carlos

Guest
rebjr

effectivement Rai , cil n'y a plus d'erreur mais le nbel ne se remplit pas car à priori la variable 'informer' n'est pas accessible vers un module .

Je n'arrive pas à la rendre public ,comment faire ?

public sub informer as variant (ne marche pas )

merci
 
C

carlos

Guest
salut galopin 01

ma structure generale semble correspondre à la tienne , sauf peut etre la variable 'informer' car le mien c'est une chaine de caractere avec des chiffres:

Option Private Module
Dim Informer

Public Static Sub informerrepartition()
Dim restant As Byte

NombreEleveDisp
restant = Cells(2, 2).Value - (Int(Cells(2, 2).Value / Cells(12, 1).Value) * Cells(12, 1).Value)
Informer = Cells(2, 2).Value & ' joueurs répartis en ' _
& Int(Cells(2, 2).Value / Cells(12, 1).Value) & ' poules de ' _
& Cells(12, 1).Value _
& IIf(restant <> 0, ' et une poule de ' _
& restant _
& ' joueur(s)', '')
MsgBox Informer
End Sub

D'ailleurs le message s'affiche correctement dans la boite de dialogue MAIS pas dans le label('NBEL')

Pourquoi ?

merci
 
C

carlos

Guest
re

peu à peu l'oiseau fait son nid

Option Private Module
Dim Informer

Public Static Sub informerrepartition()
Dim restant As Byte

NombreEleveDisp
Informer = 4
End Sub
- ----------------------------------

Private Sub NBEL_click()
Dim Informer As Byte
informerrepartition
NBEL.Caption = Informer
MsgBox Informer
End Sub


Le message renvoyée est = 0 au lieu de 4

??????????
 

galopin01

XLDnaute Occasionnel
Une fois suffit !
Tu as déja :
Option Private Module
Dim Informer

Pas la peine de :
Private Sub NBEL_click()
Dim Informer As Byte
Je dirai même surtout pas, car VBA considère que tu utilises une autre variable locale (du même nom et vide bien s&ugrave;r...)

Ok ?
 
C

carlos

Guest
re bonjour Galopin

Maintenant g :

erreur de compilation :

variable ou procedure attendue et non un module.

Et pourtant 'informer 'est bien une variable ? non ??


Option Private Module
Dim Informer

Public Static Sub informerrepartition()
Dim restant As Byte
NombreEleveDisp
Informer = 4
End Sub

Merci de te pencher sur mon cas
 

galopin01

XLDnaute Occasionnel
Ben,
c'est un bricolage qui traduit bien qu'il y a juste un petit prob de déclaration et de structure dans ton module.
Si les 3 procédures :
Sub informerrepartition
Sub NombreEleveDisp
Sub NBEL_click


...sont dans un même module qui commence par :
Dim Informer
Il n'y a pas de raison que la variable ne se transmette pas...

Au lieu de montrer tout ton classeur tu peux te contenter de nous envoyer une copie de ton module sous forme de module.txt :
Dans VBAProject tu cliques (Clic Droit) sur ton module,
tu choisis exporter, VBA va te proposer comme nom 'module.bas'
tu remplaces en 'module.txt' tu zippes et tu nous met ça en pièce jointe. (ou tu me l'envoies en pièce jointe en cliquant sur ma signature)
A+
 

Statistiques des forums

Discussions
312 570
Messages
2 089 768
Membres
104 271
dernier inscrit
acuponctus