XL 2016 incrementation chiffre pour renvoyer lettre

  • Initiateur de la discussion Initiateur de la discussion djiska
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

djiska

XLDnaute Junior
Bonjour

j'ai ecris un code qui entre une valeur 0 à 15 qui la retourne lorsqu'elle correspond à cette interval de 0 à 9
mais qui qui dois retourne A quand la valeur entrée est 10
B quand la valeur entrée est 11
C quand la valeur entrée est 12
ainsi de suite..

Je me suis servi de Chr mais cela ne me retourne que A.
pouvez vous m'aider !!




If nb >= 0 And nb <= 9 Then
valeurHexa = nb + i

ElseIf nb > 9 And nb <= 15 Then

valeurHexa = Chr(65 + i)
i = i + 1
end if

Call MsgBox(valeurHexa)

End Sub
 
Solution
Djiska,
Ma fonction n'est autre que la votre remaniée.
Vous n'appelez qu'une InputBox. donc dans la fonction,il n'y en a qu'une.
Testez avec l'appel de fonction ci dessous :
VB:
Sub Test()
    HexaOuPas = ValideNombreHexa(0)
End Sub
Public Function ValideNombreHexa(ByVal chaine As String) As Boolean
Dim validite As Boolean
Dim Valeur As String
Dim i As Integer
chaine = InputBox("entrer une valeur hexadecimal")
validite = False
For i = 1 To Len(chaine)
    Valeur = Val(Asc(UCase(Mid(chaine, i, 1))))
    If (Valeur >= 48 And Valeur <= 57) Or _
       (Valeur >= 65 And Valeur <= 70) Then
            validite = True
    Else
            validite = False
    End If
Next i
ValideNombreHexa = validite
End Function
Par contre si vous...
Djiska,
Ma fonction n'est autre que la votre remaniée.
Vous n'appelez qu'une InputBox. donc dans la fonction,il n'y en a qu'une.
Testez avec l'appel de fonction ci dessous :
VB:
Sub Test()
    HexaOuPas = ValideNombreHexa(0)
End Sub
Public Function ValideNombreHexa(ByVal chaine As String) As Boolean
Dim validite As Boolean
Dim Valeur As String
Dim i As Integer
chaine = InputBox("entrer une valeur hexadecimal")
validite = False
For i = 1 To Len(chaine)
    Valeur = Val(Asc(UCase(Mid(chaine, i, 1))))
    If (Valeur >= 48 And Valeur <= 57) Or _
       (Valeur >= 65 And Valeur <= 70) Then
            validite = True
    Else
            validite = False
    End If
Next i
ValideNombreHexa = validite
End Function
Par contre si vous l'appelez après une InputBox pour passer la valeur, alors il y en a deux.
C'est que l'appel d'InputBox dans votre fonction n'est pas à sa place.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
707
Réponses
7
Affichages
361
Retour