Vba-erreur définie par l'application...

Résolu/Fermé
Tehani_t
Messages postés
240
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
20 décembre 2011
- 14 oct. 2010 à 20:43
Tehani_t
Messages postés
240
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
20 décembre 2011
- 15 oct. 2010 à 22:11
Bonjour,

lorsque je lance le programme ci dessous excel m'affiche "Erreur définie par l'application ou par l'objet" et la ligne "pos=sheets("3_positions").cells(ligne,i).value" est surlignée en jaune, pourquoi ??

Ensuite j el'ai lancé en insérant un "msgbox" qui affiche la valeur de "pos", ca m'affichait bien ce que je voulais (c a d une date) mais après c'était "00:00:00" et puis le message d'erreur s'affiche. Qui peut m'aider SVP ?? merci

Do
i = j - 2
pos = Sheets("3_positions").Cells(ligne, i).Value
MsgBox (pos)
deb_pos = Sheets("3_positions").Cells(fligne, j).Value

deb_pos_bis = Format(DateSerial(Year(deb_pos), Month(deb_pos), Day(deb_pos)), "dd/mm/yyyy")

If deb_pos_bis > deb_ech_bis Then
k = j + 1
fin_pos = Sheets("3_positions").Cells(fligne, k).Value
fin_pos_bis = Format(DateSerial(Year(fin_pos), Month(fin_pos), Day(fin_pos)), "dd/mm/yyyy")

If fin_pos_bis > fin_ech_bis Then fin_pos = ffin_ech

pos_a = calcul_duree(deb_pos, fin_pos, "a")
pos_m = calcul_duree(deb_pos, fin_pos, "m")
pos_j = calcul_duree(deb_pos, fin_pos, "j")

duree_a = duree_a + pos_a
duree_m = duree_m + pos_m
duree_j = duree_j + pos_j
End If
j = j + 5
Loop Until pos = "" Or ((deb_pos_bis > deb_ech_bis) And (fin_pos = ffin_ech))

5 réponses

Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 754
14 oct. 2010 à 21:23
Bonsoir,

Difficile de t'aider si tu ne donne qu'un petite partie du code et aucune explication sur le contenu des feuilles !

Tu pourrais mettre un exemple sur http://cijoint.fr/ et coller le lien dans ton prochain message.
0
Tehani_t
Messages postés
240
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
20 décembre 2011
21
14 oct. 2010 à 21:35
désolée, voici le lien
http://www.cijoint.fr/cjlink.php?file=cj201010/cijlmiy1TB.xls
0
Tehani_t
Messages postés
240
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
20 décembre 2011
21
14 oct. 2010 à 21:37
Feuil "11_acces_csad_choix"

Clique sur le bouton et tu verras le msg d'erreur, mais je ne sais pas s'il y a d'autres fautes, n'ayant pas pu résoudre ce pb ci
0
eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022
7 105
14 oct. 2010 à 22:32
Bonsoir tout le monde,

pos = Sheets("3_positions").Cells(ligne, i).Value

ligne n'est pas défini, ce n'est fligne qu'il faut plutôt ?

eric
0
Tehani_t
Messages postés
240
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
20 décembre 2011
21
14 oct. 2010 à 22:51
ohlala !!!! ou avais je la tete !! MERCI BEAUCOU¨P eriiic !!!!!!!!!!!!!!!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 754
15 oct. 2010 à 00:35
Une excellente habitude à prendre consiste à commencer chaque module par :
Option Explicit
0
Tehani_t
Messages postés
240
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
20 décembre 2011
21
15 oct. 2010 à 02:25
ca sert à quoi ??
0
eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022
7 105
15 oct. 2010 à 07:01
Ca oblige à déclarer toutes les variables.
Ainsi une erreur de saisie sur le nom génère une alerte lorsque tu lances le programme.
eric
0
Tehani_t
Messages postés
240
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
20 décembre 2011
21
15 oct. 2010 à 22:11
Je ne savais pas !! Merci pour l'info !!!!
0