Exercice vb6

pythagore1 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, voici ce code:

Public Sub ConvertHexDecimal(CAr As String) 'Convertisseur
Dim ValDecilCAr As Integer

If ((CAr >= "0") And (CAr <= "9")) Then
ValDecilCAr = "0" & Val(CAr)
End If
If ((CAr >= "A") And (CAr <= "F")) Then
If CAr = "A" Then ValDecilCAr = 10
If CAr = "B" Then ValDecilCAr = 11
If CAr = "C" Then ValDecilCAr = 12
If CAr = "D" Then ValDecilCAr = 13
If CAr = "E" Then ValDecilCAr = 14
If CAr = "F" Then ValDecilCAr = 15
End If
alors quand j'appelle ma fonction pour m'affiche les caractérés contenus dans ma variable utile provenant de mon poste central rien ne s'affiche, la fonction d'ppel est celle-ci:

Diaze = Mid(utile, 6, 2)
If CAr = "0" Then
Call ConvertHexDecimal(CAr)
Combo5.Text = ValDecilCAr
End If

Aider moi s'il vous plais merci.

3 réponses

zheimer
 
Si je ne me trompe pas, une sub ne renvoie pas de valeur.

2 solutions:
Soit tu déplaces ton < Combo5.Text = ValDecilCAr > dans la sub

Soit tu remplaces ta sub par une fonction ( et la il faut modifier un peu le code)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Pourquoi ne pas déclarer ValDecilCAr en variable globale public en entête de ton module ?

;o)
-1
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
en complément de la réponse de Polux, la sub serrait plus simple avec...
    If ((Car >= "0") And (Car <= "9")) Then
        ValDecilCAr = "0" & Val(Car)
    ElseIf ((Car >= "A") And (Car <= "F")) Then
        ValDecilCAr = Asc(Car) - 55
    End If


Et peut-être encore plus facile...
Mais il y à une erreur dans l'appel qui ne se ferra jamais puisque tu n'envoi que s'il y a "0" et ensuite
tu teste si >=0
Met un peu un exemple de ce que contient ta variable Utile.

    If CAr = "0" Then 
            Combo5.Text = ConvertHexDecimal(CAr)
    End If 


Function ConvertHexDecimal(CAr As String) As Variant
    If ((CAr >= "0") And (CAr <= "9")) Then
        ConvertHexDecimal = "0" & Val(CAr)
    ElseIf ((CAr >= "A") And (CAr <= "F")) Then
        ConvertHexDecimal = Asc(CAr) - 55
    End If
End Function


A+
-1