Conversion decimal -> hexadecimal [Résolu]

Signaler
Messages postés
30
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
11 août 2009
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
bonjour à tous

voilà j'ai lu plein de choses sur cette conversion
notamment que la fonction Hex() permettait de le faire
seulement avec vb6 quand je fais :

Hex(1348)         'ou autre nombre

il me fait une erreur et me demande de mettre un tableau et pas un nombre

si qqn peut m'aider

merci d'avance

@+

14 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Re,
Sinon essaie de remplacer Hex par Conversion.Hex ou Conversion.Hex$

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Et MsgBox Hex(1348), ça marche pas ?
_________________________________________________________________________
VB.NETis good ...VB6is better<
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut
Comme le suggère Ghuysmans99, si cette instruction ne fonctionne pas, c'est que VB ne reconnait pas le mot clé HEX.
Cela peut arriver, en général, sur des fonctions comme Left ou Right, mais bon.
Simplement enregistre ton projet, sors de VB6, éventuellement reboote puis relance le tout, ça va repartir comme en 40.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privésys

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
En complément: Es tu sûr que la ligne est telle quelle? pourrais tu mettre un peu plus de code car l'erreur ne vient peu etre pas de là.

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
30
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
11 août 2009

Salut
merci d'avoir repondu
msgbox Hex(1348) ne fonctionne pas : il me surligne Hex et me dit qu'il attend un tableau

en fait quand j'ecris hex ou HEX vb6 me le change en Hex, du coup j'ai cru qu'il le reconnaissait et comme l'entreprise ou je suis n'a pas de msdn je ne peux pas verifier

rebooter la machine non plus ne marche pas

si vous deux ou qqn d'autre ont des idees, dîtes-le moi
merci d'avance

@+
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Tu peux peut-être essayer Hex$, qui fait la même chose mais retourne une String ...
On sait jamais !
_________________________________________________________________________
VB.NETis good ...VB6is better<
Messages postés
30
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
11 août 2009

salut jrivet

j'ai pris un nouveau projet dans lequel il n'y a qu'une feuille dont le code ne contient que "msgbox hex(1348)" et en effet cela fonctionne !

mais dans mon projet, meme si je prends une nouvelle feuille, l'erreur se produit
voici le code de la seule feuille de mon projet (en fait je communique avec un automate omron CJM1 et je récupère des données grace à des afficheurs omron => sur ma feuille, il y a un control qui permet la communication avec CX-server, 7 afficheurs omron qui sont liés au control de communication, et 7 listBox.) :

   Private Sub Form_Load()
   Dim tempo As Integer
   Dim heure As String
   Dim datedoj As String
   Dim enr_minut As Integer
   Dim n_cycle1 As String
   Dim n_cycle2 As String
   Dim npas As Integer   
   Dim npas_prec As Integer
   Dim t_cuve As Integer
   Dim t_dech As Integer
   Dim coeffste As Integer
   Dim press As Integer
   Dim i As Integer
   Dim f As Byte
   
   Comms1.ClosePLC
   tempo = Second(Now)
   Do Until Second(Now) = tempo + 5
   Loop
   
   Form1.Show
   tempo = Second(Now)
   Do Until Second(Now) = tempo + 5
   Loop
   
   Comms1.OpenPLC
   tempo = Second(Now)
   Do Until Second(Now) = tempo + 5
   Loop
   f = "0000000000000001"

recomm:
   If (Comms1.CIO(117) And f) <> 1 Then
      GoTo recomm
   Else
      heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
      datedoj = Date
      List6.AddItem heure
      List7.AddItem datedoj

boucle_pas:
   If Display1.Value = 1234.5 Then   
      GoTo boucle_pas
   Else
      npas_prec = Display1.Value
      heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
      datedoj = Date
      List6.AddItem heure
      List7.AddItem datedoj
      List1.AddItem Display1.Value
      List2.AddItem Display2.Value
      List3.AddItem Display3.Value
      List4.AddItem Display4.Value
      List5.AddItem Display5.Value
      Do While (Comms1.CIO(117) And 1) = 1
boucle:
         Do While Display3.Value <= 120
            Do Until Display1.Value <> npas_prec
               tps_pas = Comms1.D(16)
            Loop
            List6.AddItem tps_pas
            List7.AddItem ""
            List1.AddItem ""
            List2.AddItem ""
            List4.AddItem ""
            List3.AddItem ""
            List5.AddItem ""
            npas_prec = Display1.Value
         Loop
         Do While Display3.Value > 121   
            enr_minute = Minute(Now)
            heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
            datedoj = Date
            List6.AddItem heure
            List7.AddItem datedoj
            List1.AddItem Display1.Value
            List2.AddItem Display2.Value
            List3.AddItem Display3.Value
            List4.AddItem Display4.Value   
            List5.AddItem Display5.Value
boucle_minute:
            If Minute(Now) <> enr_minute + 1 Then
               GoTo boucle_minute
            End If
         Loop
      Loop
   End If
End If
heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
datedoj = Date
GoTo recomm
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
   Comms1.ClosePLC
   tempo = Second(Now)
   Do Until Second(Now) = tempo + 3
   Loop
   End
End Sub

voila. les temporisations servent à laisser du temps au programme sinon toute l'application bloque.
merci d'avance
Messages postés
30
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
11 août 2009

desolee j'etais en train de taper mon msg alors jai pas vu tous les autres

je vais essayer tout ce que vous m'avez dit et je vous dis quoi
merci
Messages postés
30
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
11 août 2009

re
Hex$ me retourne une erreur : le caractere de declaration de type ne correspond pas au type de donnees declare. je crois qu'il attend un caractere

j'essaie les autres
@+
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Re,
Mais il n'y a pas de Hex dans le code ou je suis aveugle???

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
30
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
11 août 2009

re

Conversion.Hex(1348)  marche !
je crois que je vais faire avec celle-là car deja il reconnait bien conversion (il me met un petit menu des que je mets le point et dans lequel il y a Hex et quand je tape Hex il me demande bien un nombre)

je vais aller essayer ça dans l'atelier (ça va prendre un peu de temps) avec l'automate et je vous dirait quoi (ce qu'il en est , pour ceux qui ne seraient pas du nord : [)   )

mais je ne sais pas pourquoi Hex tout seul ne fonctionne pas
en tous cas merci à tous

@+
Messages postés
30
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
11 août 2009

Ooops pardon je l'ai retiré hier quand cela ne fonctionnait pas
alors en fait il est :

.....
boucle:
   Do while display3.value <= 120
      Do until display1.value<> npas_prec
         tps_pas = Hex(Comms1.D(16))
      Loop
      List6.additem tps_pas
.....

encore désolée
c parce que la case memoire D(16) renvoie normalement un temps mn:ss
mais elle retourne une valeur decimale et c'est en hexa que l'on peut avoir les 4 chiffres du temps, il me faudra juste ajouter un ":" entre eux

merci
Messages postés
30
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
11 août 2009

Re
je viens de voir que j'ai oublié une ligne de declaration
"Dim tps_pas as string"

désolée j'ai fait tellement de modif quand l'appli bloquait à cause de la connection....

merci
@+
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Re
Je n'ai pas tout lu les réponses, mais pense aussi à regarder si tu n'aurais pas créé une SUB, une FUNCTION ou une VARIABLE, n'importe où dans le code, portant le nom de HEX --> Dans ce cas, le compilateur ne saurait plus s'il a à faire avec ta Sub ou avec sa propre fonction
--> Attention de ne pas utiliser de mot clé dans les noms de fonction ou de variable

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)