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.
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.