Problème condition d'entrée dans une boucle

Résolu
Drake59730 Messages postés 26 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 27 juin 2012 - 22 avril 2008 à 10:44
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 22 avril 2008 à 12:41
Bonjour à tous,

Voila cela fait 2h que je me prends la tête sur ce petit problème et je n'arrive pas à trouver mon erreur.

J'ai programmé la boucle suivante qui transforme des heures au format hexadécimal puis les copies dans une feuille Excel.

Lorsque j'execute mon programme, la condition d'entrée n'est pa vérifiée et j'ai le message:
"Heure_début_arret(j) = "

Quelle est mon erreur?

Merci d'avance pour votre aide

Module:
Public Heure_début_arret() As Integer
Public Heure_fin_arret() As Integer


Fonction:
Dim j, i As Integer


Do While Heure_début_arret(j) <> 0
   
        h1 = Hex(Heure_début_arret(j) / 256) & ":" & Hex(Heure_début_arret(j) Mod 256)
        feuilleExcel2.Cells(i, 4) = h1
            
        h2 = Hex(Heure_fin_arret(j) / 256) & ":" & Hex(Heure_fin_arret(j) Mod 256)
        feuilleExcel2.Cells(i, 5) = h2
       
             i = i + 1
             j = j + 1
 
       Loop

11 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
22 avril 2008 à 11:03
lillith212>
Deux tableaux d'entiers sont bien déclarés ici :
Public Heure_début_arret() As Integer
Public Heure_fin_arret() As Integer

non, ce qui gène, c'est que ce sont deux tableaux de 0 case.
il faut les dimensionner dynamiquement comme cela :

redim Heure_début_arret(5)
ReDim Heure_fin_arret(5)

et s'assurer que ces 6 cases suffiront...

attention, Drake59730, a ne pas confondre:
Dim j, i As Integer
et
Dim j As Integer, i As Integer
ou
Dim j As integer
Dim i As Integer

dans ton code, j est un Variant, i un entier
3
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
22 avril 2008 à 10:52
Bonjour,

Si je comprends bien ton problème ta condition ne peut pas être vérifié car tu as une erreurs.
Quand je lis ton code je ne vois pas quand tes variables sont définies. Logique que tu ais une erreur de ce type.

Heure_début_arret tu récupère où sa valeur?
Heure_début_arret(j) --> ????
C'est un integer et non un tableau...

Voila si ca peut t'aider sinon donne un peu plus de ton code pour comprendre...

Bonne prog

SLB
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
22 avril 2008 à 10:53
Salut,
j est égale à quoi ?
Peut être devrais tu initialiser tes variables afin de rentrer dans la boucle















 





Cliquer "Réponse Acceptée




"













Partageons Notre Savoir & Nos Acquis



-
JML




<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
0
Drake59730 Messages postés 26 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 27 juin 2012
22 avril 2008 à 11:02
Excusez moi, j'ai fait tellement d'essais que j'ai oublié de remettre l'initialisation de 'j' qui est égal à 0.

La variable heure_début _arret est tirée d'un tableau de mots venant d'un automate (%MW1000:200) par exemple si vous connaissez.


Je viens juste copier ce tableau dans le tableau VB que je vais ensuite copier ensuite dans un feuille Excel, mais je n'y arrive pas.


Pour info h1 et h2 sont des variant et les valeurs reçues de l'automate sont des entiers.

Merci
0

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

Posez votre question
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
22 avril 2008 à 11:09
Re:

Autant pour moi. Je me suis mal exprimée. :)

SLB
0
Drake59730 Messages postés 26 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 27 juin 2012
22 avril 2008 à 11:12
Ouaoh!!

La j'avoue c'est le genre de  truc que j'ai encore un peu de mal à gérer.

Merci à tous,vous m'avez tiré une épine du pied.

Merci
               
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
22 avril 2008 à 11:13
Re:

Solution pour ton tableau : Si tu peux récupérer le nombre exact de case avant plutot que de donner une valeur aléatoire qui pourrai poser problème dans le futur fait le...

dim index as integer

index = 'nombre de case

Redim Heure_début_arret(index)
ReDim  Heure_fin_arret(index)

ton appli est plus dynamique comme ca...

SLB
0
Drake59730 Messages postés 26 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 27 juin 2012
22 avril 2008 à 11:19
Ok, je vais faire comme ça et je récupèrerai mon index dans l'automate, super idée !!

Merci bcp 
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
22 avril 2008 à 11:30
les tableaux (par defaut) commencent à 0 donc....

dim index as integer
index = 'nombre de case +1
Redim Heure_début_arret(index)
ReDim Heure_fin_arret(index)

au pire, si tu viens a manquer de place, on peut redimensionner, et préciser que l'on souhaite conserver les données :

les tableaux (par defaut) commencent à 0 donc....

index = index+4
Redim Preserve Heure_début_arret(index)
ReDim Preserve Heure_fin_arret(index)
0
Drake59730 Messages postés 26 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 27 juin 2012
22 avril 2008 à 12:04
Vous allez rire, j'ai bien essayé vos solutions et j'ai corrigé mes erreurs.
J'ai voulu vérifier mes résultats et la station sur laquelle tourne toutes mes appli s'est mise à ramer sévèrement.

J'ai donc voulu redémarrer histoire de réinitialiser le système et permettre au vieux coucou qui me sert de serveur de souffler.

Et la c'est le drame !!!

Crash du disque dur il a jamais voulu redémarrer!!! Mdr

Donc depuis 1/2 heure je suis au chomage technique!!!

En tout cas merci de votre aide c'était sympa

A+
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
22 avril 2008 à 12:41
pas de bol...
0