Téléchargement
illégal
Posez votre question Signaler

Erreur 91 en vb

Ced - Dernière réponse le 12 mai 2010 à 11:32
bonjour a tous,
je n'arrive pas a résoudre mon erreur et j'esppere que vous pourrez m'aider
j'ai mis en evidence la ligne surlignée en jaune pas le debogage.
il me met erreur 91 : variable objet ou variable de block with non definie.
voila le code :
Do While i <= Subscript
d = Ref.Cells(i, DATE_EVENEMENT)
E = UCase(Ref.Cells(i, EVENEMENT))
If E = "SORTIE" Then
'Le collaborateur a quitté l'entreprise
IgnorerTaux = True
End If
If EstDansPériode(d) = APRES Then
If i = IDeb Then
'le collaborateur est entré après la fin de période
Ignorer = True
End If
Exit Do
End If
If EstDansPériode(d) = AVANT Then
If E = "SORTIE" Then
'le collaborateur est sorti avant le début de période
Ignorer = True
Exit Do
End If
'Le collaborateur était déjà présent avant le début de période
AncienSalaire = Ref.Cells(i, SALAIRE)
DernierSalaire = Ref.Cells(i, SALAIRE)
Ancien = True
End If
If EstDansPériode(d) = DEDANS Then
If i = IDeb Then
'le collaborateur est entré pendant la période
Entré = True
SalaireEntrée = Ref.Cells(i, SALAIRE)
End If
DernierSalaire = Ref.Cells(i, SALAIRE)
If E = "SORTIE" Then
'le collaborateur est sorti pendant la période
Sorti = True
Exit Do
End If
End If
i = i + 1
Loop
en esperant que vous pourez m'aider !!!
merci d'avance a tous ceux qui se pencheront sur le sujet !
Lire la suite 

Erreur 91 en vb »

Suggestions
10 réponses
Réponse
+0
moins plus
Bonjour,
Qu'est ce que 'E' ?
ced - 11 mai 2010 à 18:02
c'est une variable qui dis en gros ou en est l'employé, si il est dans l'entreprise ou pas.
je l'ai déclaré en integer, je me suis trompé?
ced - 11 mai 2010 à 18:05
j'ai un peu chercher le probleme et je pense que mon erreur est sur la déclaration de me tableux UCase, un nouveau message d'erreur me dis que je l'ai mal dimensionné, pourtant il me semble que c'est les bonnes dimensions.
Polux31- 11 mai 2010 à 18:13
Bonjour,

UCase n'est pas un tableau mais une fonction qui retourne une chaîne de caractères en majuscule. Donc il y a un bémol si E est de type Interger !!!

Il faudrait savoir comment les variables ont été déclarées ainsi que l'instanciation des objets avant de pouvoir dire quoique se soit sur ce code.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour Polux,
alors voila mes déclarations (en sachant que je suis novice et que j'ai donc surement fait des erreurs) :
i: Integer
E : String
Ucase : ????
EVENEMENT : Const EVENEMENT = 2
d : DATE
IDeb : Integer
Polux31- 12 mai 2010 à 11:01
Dans la déclaration de ta fonction, "Ref" est un objet Range. C'est à dire qu'il représente une cellule ou une plage de cellules.

Ici "E = UCase(Ref.Cells(i, EVENEMENT))", "Ref" est employé comme un objet Worksheet. C'est à dire qu'il représente une feuille de ton classeur.

Ne sachant pas exactement ce que tu veux faire, peux-tu faire passer ton fichier en utilisant le site www.cjoint.com. Tu postes ici le lien que le site te donnera.

Tu peux enlever ou modifier les données personnelles ou confidentielles avant de déposer ton fichier.

;o)
ced - 12 mai 2010 à 11:16
http://cjoint.com/?fmlqBJqYEN

en revenche je t'ai envoyé tout mon dossier, j'ai plusieurs problèmes, mais si arrive a m'aider sur le problème dont je te parle je pense pouvoir résoudre les autres.

j'ai un autre probleme que je ne comprends pas non plus, j'ai fait pas mal de déclaration sur ce projet et si j'enregistre le tout, alors quand je veux réouvrir le document il plante.
je t'envoi donc le dossier initial qu'on m'a donné, et je t'envoi a coté le code des macros que j'ai modifié (comme sa tu supprime le module1 et tu fait un copier/coller de celui que je t'envoi en créant un nouveau module1)

pour te guider : le bout de code dont je te parle ce trouve dans la Function TraiterStatSalarié(Ref As Range, Subscript, NbLig) du module1 des macros.

j'espere que tu m'as compris ;)
ced - 12 mai 2010 à 11:32
Polux31, tu n'es plus obligé de regarder mon code, j'ai trouvé l'erreur !!
en réalité il n'y en avait pas : il suffisait de faire un réglage dans :
vbe /outils/ Références
Ces 5 éléments doivent être cochés
visual basic for application
microsoft excel 12.0 object library
OLE automation
microsoft ofice 12.0 object library
microsoft forms 2.0 object library

alors que moi "manquant" était coché et pas "microsoft ofice 12.0 object library "
je l'ai décoché et tout marche.

mais merci quand meme pour aide !!!
Ajouter un commentaire
Ce document intitulé « erreur 91 en vb » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?