Générer une liste de caractères sur Excel

Catherine77000 Messages postés 3 Date d'inscription samedi 7 août 2010 Statut Membre Dernière intervention 8 août 2010 - 7 août 2010 à 21:04
Catherine77000 Messages postés 3 Date d'inscription samedi 7 août 2010 Statut Membre Dernière intervention 8 août 2010 - 8 août 2010 à 14:35
Bonjour tout le monde,

Je m'en remets à vous car là j'avoue que je bloque, j'ai tout essayé mais en vain


Ce que je voudrais, c'est créer une liste sur une colonne excel, mais au lieu d'être au format décimal traditionnel, je voudrais au format spécifique (chiffres & lettres)

Pour être plus claire, cela donnerait (sur la colonne 1, c'est très important):

...
AHDSFF1X
AHDSFF1Y
AHDSFF1Z
AHDSFF20
AHDSFF21
(etc etc)
AP0Z5DYX
AP0Z5DYY
AP0Z5DYZ
AP0Z5DZ0
AP0Z5DZ1
...


(L'ordre des "chiffres" utilisés seraient donc:
0 1 2 3 4 5 6 7 8 9 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)


J'ai réussi à créer des suites en en décimal (et même hexadécimal) en "tirant les cellules vers le bas, mais lorsqu'on ajoute les lettres de G à Z, Excel ne veut plus rien savoir et ne crée plus de suite

Je ne sais pas si c'est possible, mais en tout cas là j'ai épuisé toutes mes ressources sur ce casse-tête...

Quelqu'un aurait-il une idée de comment faire ?
L'idéal ce serait que quelqu'un de confirmé puisse me créer une "formule", ou une macro du genre, comme ça lorsque je rentrerais quelque chose dans une cellule, je puisse "tirer" cette cellule, et cela créerait automatiquement les suites.

Je me doute que cela ne doit pas être facile, mais si vous avez des idées merci de me les partager.

Bien cordialement,
Catherine

Merci beaucoup de votre aide.

5 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
7 août 2010 à 23:43
Bonsoir
Cela commence avec 00000000 et se termine par
ZZZZZZZZ ?
donc on a 36^8 possiblité
en 1 colonne je ne pense pas que c'est possible
sur plusieurs oui
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
8 août 2010 à 00:21
Bonjour,

Voici une petite solution qui peut dépanner
Const tRollStr As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Private Function GetNext(ByVal Code As String) As String
    UpdateCode Code, Len(Code)
    GetNext = Code
End Function

Private Function UpdateCode(ByRef Code As String, ByVal Index As Long)
    Dim i As Long
    If Index = 0 Then
        Code = Mid(tRollStr, 2, 1) & Code
    Else
        i = InStr(tRollStr, Mid(Code, Index, 1))
        i IIf(i Len(tRollStr), 1, i + 1)
        Mid(Code, Index, 1) = Mid(tRollStr, i, 1)
        If i = 1 Then
           UpdateCode Code, Index - 1
        End If
    End If
End Function

Sub Incremente()
    Dim nbLignes As Long
    Dim l As Long
    nbLignes = CLng(InputBox("Nombre de lignes à ajouter :"))
    For l = ActiveCell.Row To ActiveCell.Row + nbLignes - 1
        Cells(l + 1, ActiveCell.Column).Value = GetNext(Cells(l, ActiveCell.Column).Value)
    Next
End Sub


Placez ce code dans un module du classeur.

Selectionnez la cellule de départ, exécutez la macro "Incremente". On lui donne le nombre de ligne à incrémenter et le tour et jouer.
0
Catherine77000 Messages postés 3 Date d'inscription samedi 7 août 2010 Statut Membre Dernière intervention 8 août 2010
8 août 2010 à 14:16
Merci beaucoup foliv57, votre code marche très très bien, en plus très pratique, c'est EXACTEMENT ce que je cherchais.

Cependant, n'étant pas très douée avec ce genre de code, ce serait très gentil de votre part de me dire quelle partie du code je dois changer pour choisir le "nombre" de départ.

En d'autres termes, si je veux démarrer la série par "AAAAAAAA" (au lieu de "0"), quelle partie dois-je changer?


Je vous suis vraiment très reconnaissante pour ce code, un très grand merci à vous!
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
8 août 2010 à 14:26
Il suffit de saisir le code de départ dans une cellule, de sélectionner la cellule et de lancer la macro.

Exemple :

1) Saisissez "AAAAAAAA" dans la cellule "A1"
2) Sélectionnez la cellule "A1"
3) Lancez la macro
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Catherine77000 Messages postés 3 Date d'inscription samedi 7 août 2010 Statut Membre Dernière intervention 8 août 2010
8 août 2010 à 14:35
Et bien là franchement bravo, et encore un très grand merci pour ce code.

Je vous souhaite une bonne continuation sur le site

Très cordialement,
Catherine
0
Rejoignez-nous