Convertisseur hexavigésimal

Description

Ce convertisseur comme son nom l'indique permet d'effectuer l'incrémentation d'une combinaison de lettres alphabétiques, en lui indiquant l'intervalle d'ajout ou de soustraction. Exemple : ABXA + 3 = ABXD

Source / Exemple :


Private Sub Command1_Click()
Dim ta(1 To 4) As Variant 'Déclaration du tableau ta de 4 cases
Dim ia As Integer, Resultat As Long, Interval As Long
If Option1.Value = False And Option2.Value = False Then
    MsgBox ("Veuillez choisir une des deux options disponibles")
Exit Sub
End If
ta(4) = Txtinval1.Text
ta(3) = Txtinval2.Text
ta(2) = Txtinval3.Text
ta(1) = Txtinval4.Text
For ia = 1 To 4
    If ta(ia) = "" Then
        MsgBox ("Veuillez saisir les lettres demandées")
    Exit Sub
    End If
Next ia
If TxtInVal5.Text = "" Then
    MsgBox ("Veuillez saisir l'intervalle de conversion")
    Exit Sub
End If
Interval = TxtInVal5.Text
If Interval <= 0 Or Interval > 456975 Then
    MsgBox ("L'intervalle doit être un nombre entier compris entre 1 et 456975")
Exit Sub
End If
For ia = 1 To 4
    ta(ia) = Asc(ta(ia)) - 65 'On convertit ici chaque lettre de l'alphabet en valeur numérique
Next ia
Resultat = ta(1) * 26 ^ 0 + ta(2) * 26 ^ 1 + ta(3) * 26 ^ 2 + ta(4) * 26 ^ 3 'c'est la formule de conversion hexavigésimale
If Option1.Value = True Then 'ici on ajoute l'intervalle numérique ou on le retranche selon le choix de l'utilisateur
    Resultat = Resultat + Interval
Else
    Resultat = Resultat - Interval
End If
If Resultat < 0 Then
    Resultat = 0
End If
If Resultat > 456975 Then
    Resultat = 456975
End If
ta(1) = Resultat Mod 26
ta(2) = ((Resultat - ta(1)) / 26) Mod 26
ta(3) = (((Resultat - ta(1)) / 26 - ta(2)) / 26) Mod 26
ta(4) = ((((Resultat - ta(1)) / 26 - ta(2)) / 26) - ta(3)) / 26
For ia = 1 To 4
    ta(ia) = Chr$(ta(ia) + 65) 'On convertit les résultat numériques trouvés en lettres
Next ia
Label1.Caption = ta(1)
Label2.Caption = ta(2)
Label3.Caption = ta(3)
Label4.Caption = ta(4)
End Sub
Private Sub Option1_Click()
If Option2.Value = True Then
    Option2.Value = False
End If
End Sub
Private Sub Option2_Click()
If Option1.Value = True Then
    Option1.Value = False
End If
End Sub
Private Sub capital(keyascii As Integer)
If (keyascii >= 97) And (keyascii <= 122) Then
    keyascii = keyascii - 32
End If
End Sub
Private Sub Txtinval1_change()
Txtinval1.Text = StrConv(Txtinval1.Text, vbUpperCase)   'Convertir la lettre saisie en majuscule
End Sub
Private Sub Txtinval2_KeyPress(keyascii As Integer)
Call capital(keyascii)                          'Ou bien
End Sub
Private Sub Txtinval3_KeyPress(keyascii As Integer)
Call capital(keyascii)
End Sub
Private Sub Txtinval4_KeyPress(keyascii As Integer)
Call capital(keyascii)
End Sub

Conclusion :


J'utilise personnellement cet utilitaire dans le module de rapprochement bancaire de sage 1000. Car en désirant supprimer les écritures bancaires et comptables rapprochées d'une longue période comme une année par exemple, on se heurte à la limite d'affichage du logiciel de toutes les écritures. Il faudrait alors procéder par étapes. Un intervalle de 800 est souhaitable pour supprimer toutes les lettres de rapprochement en un seul clic.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.