Exercice vb6

pythagore1 Messages postés 27 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
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.
Configuration: Windows Vista
Internet Explorer 7.0

3 réponses

  1. 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
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

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

    ;o)
    -1
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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