Liste suite logique Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
F
FEURGARD
Membre habitué
Membre habitué
Messages : 87
Inscrit le : 17 juin 2008
Version d'Excel : 2000

Message par FEURGARD » 27 août 2015, 15:27

Bonjour,

Je cherche à établir une suite logique automatique de 5 chiffres sans qu'un des chiffres se répète.

Par ex, j'aimerai que 12351-12352 n'apparraise pas dans ma liste ou trouver une formule qui puisse les supprimer.

Merci d'avance pour votre coup de main.

12345
12346
12347
12348
12349
12350
12351
12352
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 444
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 27 août 2015, 15:32

Bonjour,

Explique-toi mieux, tous tes chiffres sont répétés dans les 4 premières positions !
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'328
Appréciations reçues : 266
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 27 août 2015, 15:38

Bonjour,

solution via une macro

Sub test()
    For i = 12345 To 98765
        For j = 1 To 4
            For k = j + 1 To 5
                If Mid(i, j, 1) = Mid(i, k, 1) Then k = 99: Exit For
            Next k
            If k > 10 Then Exit For
        Next j
        If k < 10 Then l = l + 1: Cells(l, 1) = i
    Next i

End Sub
edit :correction d'une erreur de nettoyage du code.
Modifié en dernier par h2so4 le 27 août 2015, 17:04, modifié 2 fois.
F
FEURGARD
Membre habitué
Membre habitué
Messages : 87
Inscrit le : 17 juin 2008
Version d'Excel : 2000

Message par FEURGARD » 27 août 2015, 15:52

MFerrand a écrit :Bonjour,

Explique-toi mieux, tous tes chiffres sont répétés dans les 4 premières positions !


Dans mon exemple 12351==> 1 se répète

Merci pour ton retour
N'étant pas un spécialiste d'excel comment je peux l'intégrer dans un fichier STP?
Merci d'avance

h2so4 a écrit :Bonjour,

solution via une macro

Sub test()
    For i = 12345 To 98765
        For j = 1 To 4
            For k = j + 1 To 5
                If Mid(i, j, 1) = Mid(i, k, 1) Then k = 99: Exit For
            Next k
            If k > 10 Then Exit For
        Next j
        If k > 10 Then l = l + 1: Cells(l, 1) = i
    Next i

End Sub
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'328
Appréciations reçues : 266
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 27 août 2015, 16:42

re-bonjour,

- sélectionner le code sur le forum, puis le copier CTRL-C
-aller dans excel
-faire alt-F11, tu te retrouves dans l'éditeur VBA
- menu insérer-> module
- coller le code
- faire alt-F11, retour dans la feuille excel
- lancer la macro "test" via" alt-F8, exécuter.

voici le résultat
feurgard.xlsm
(14.42 Kio) Téléchargé 9 fois
Modifié en dernier par h2so4 le 27 août 2015, 16:53, modifié 2 fois.
F
FEURGARD
Membre habitué
Membre habitué
Messages : 87
Inscrit le : 17 juin 2008
Version d'Excel : 2000

Message par FEURGARD » 27 août 2015, 16:48

Un grand merci pour ton aide
Je te souhaite une bonne fin de journée
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message