Algorithme Générer un code ?

  • Initiateur de la discussion Initiateur de la discussion nonifel
  • 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 !

nonifel

XLDnaute Junior
Bonjour,

Je cherche un algorithme qui va générer un code à partir des données indiquées.

Fichier ci-joint.

Merci à vous.
 

Pièces jointes

Dernière édition:
Re : Algorithme Générer un code ?

Bonjour Nonifel, Lolote83

J'ai trouvé la fonction impeccable.
Je l'ai modifié pour intégrer les tableaux.

voici le code

PHP:
Function AvCodage(xPlage As Range)
Dim Lettre(), ChiffreLet()
Dim Chiffre(), LettreCh()
Dim xLettre As Variant
Dim xResult As Variant, xCodFin As Variant, i%, j%

Lettre = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", _
                "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", _
                "U", "V", "W", "X", "Y", "Z")
ChiffreLet = Array(25, 24, 24, 22, 21, 20, 19, 18, 17, 16, 15, _
                14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
Chiffre = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
LettreCh = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
'----------- Traitement ----------
    For F = 1 To xPlage.Count
        xCodDep = xPlage(F)  'Range("B" & F)
        For G = 1 To Len(xCodDep)
            xLettre = Mid(xCodDep, G, 1)
            If IsNumeric(xLettre) Then
'---- Traitement du numérique ----
                For i = 0 To 9
                    If Val(xLettre) = Chiffre(i) Then
                        xResult = LettreCh(i)
                    End If
                Next i
            Else
'--- Traitement de Alphabétique --
                For j = 0 To 25
                    If xLettre = Lettre(j) Then
                        xResult = ChiffreLet(j)
                    End If
                Next j
            End If
            xCodFin = xCodFin & xResult
        Next G
    Next F
    AvCodage = xCodFin
End Function

A+ Jean-Paul
 
Re : Algorithme Générer un code ?

Bonsoir nonifel, à tous,

Pour le fun, en traduisant le tableau directement avec des fonctions vba:
VB:
Function Coder$(ParamArray plage())
Dim elem, xcell, i&
  For Each elem In plage
    For Each xcell In elem
      For i = 1 To Len(xcell)
        Select Case Mid$(xcell, i, 1)
          Case "A" To "Z"
            Coder = Coder & (90 - Asc(Mid$(xcell, i, 1)))
          Case "0" To "9"
            Coder = Coder & Chr(Asc("A") + Mid$(xcell, i, 1))
          Case Else
            Coder = Coder & "-"
        End Select
      Next i
    Next xcell
  Next elem
End Function
 

Pièces jointes

Dernière édition:
- 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

  • Question Question
XL 2019 Excel IA
Réponses
0
Affichages
242
Réponses
11
Affichages
437
Réponses
5
Affichages
433
Réponses
2
Affichages
193
Réponses
16
Affichages
609
Réponses
6
Affichages
143
R
Réponses
6
Affichages
137
Retour