IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

sequence consecutive de numeros dans une suite de numeros


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut sequence consecutive de numeros dans une suite de numeros
    bonjour à tous
    je cherche depuis plusieurs jour à realiser un algo vba permettant de trouve des numeros consecutifs dans une serie de numeros
    soit la serie 1-12-5-6-13-4-3-20-2

    objectif : recherche les numeros qui se suivent de 3, 4 et 5 et faire apparaitre dans un textboxe le resultat
    sous la forme :
    il y a dans la serie X serie de 3 numeros qui se suivent( 1-3-2,..)
    il y a dans la serie y serie de 4 numeros qui se suivent(1-3-4-2,.......
    il y a dans la serie Z serie de 5 numero qui se suivent (1-3-5-4-2,........)

    merci de votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Sous quelle forme ta série ? Une chaîne de caractères ? Ou bien les numéros sont-ils chacun dans une cellule ?
    Edit
    Ta textbox se trouve-t-elle dans un userform ou dans la feuille de calculs ?

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Un bout de code peut-être ?

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Ah ! J'aime beaucoup (enfin les méninges et non la récitation)...
    Je m'en occupe donc ...

    Allez, une démo à à "main levée", pour me lancer un petit (tout petit) défi :
    Dans ce qui suis, on part d'un Array non trié (serie), que l'on transforme en array trié (serietri). ici je l'ai trié à la main mais les exemples de code pour trier ne manquent pas sur ce forum (je ne m'y attarde donc pas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Sub Command1_Click()
      serie = Array(1, 12, 5, 6, 13, 4, 3, 20, 2)
      serietri = Array(1, 2, 3, 4, 5, 6, 12, 13, 20)
      ou = 0
      cpt = 1
      For i = 1 To UBound(serietri)
        If serietri(i) - serietri(i - 1) = 1 Then
          cpt = cpt + 1
       Else
         If cpt > 2 Then Exit For
         ou = i
         cpt = 1
       End If
      Next
      If cpt < 2 Then Exit Sub
      For j = 3 To cpt
        Text1.Text = Text1.Text & "il y a " & j & " numeros ("
        For i = ou To ou + j - 1
         Text1.Text = Text1.Text & serietri(i)
        Next
        Text1.Text = Text1.Text & ") qui se suivent" & vbCrLf
      Next j
    End Sub
    Et voilà ...
    Ceci étant dit : tu ne nous as pas parlé de la possibilité de la présence de 2 (ou +) suites continues au sein de la même série. Je n'ai donc traité le cas que d'une seule série. Je te laisse le soin de comprendre ce raisonnement et d'aller plus loin (toujours avec le même raisonnement) si tu veux traiter le cas de plusieurs suites continues dans la même série.
    Observation : avec ma méthode, la suite continue commence où il en existe une et pas forcément au 1er numéro, hein... (bien évidemment).

    Bon dimanche, amitiés...
    et bonne continuation ...

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut serie
    bonjour
    tout d'abord merci de vos reponses ou questions.
    Pour repondre à ouskel'n'or et aux autres.
    les donnees sont issues dans tableau() de type variant
    les textboxe se trouve dans un userform.
    il y effectivement plusieur series

    voila comment je traite la serie ci dessus
    soit la serie 1-12-5-6-13-4-3-20-2
    je realise au choix de l'utilisateur toutes les combinaisons de taille 3 4 ou 5
    que je place dans un tableau() de type variant.
    ex
    si l'utilisateur choisit la taille 4
    je decompose la serie en combinaisons 1-12-5-6, ...........,4-3-20-2
    puis je relie le contenu du tableau et se passe chaques conbinaisons à la detection de

    numeros consecutif en fonction de la limite demande par l'utilisateur.
    ex si l'utilisateur veut eliminer toutes les combinaisons contenant une suite de 3 numeros consecutif.
    dans notre cas
    la combinaison de taille 4 1-4-5-6 sera eliminée.
    idem pour 5-4-3-2 sera eliminée.;;;

    etc.....

    je regarde le le code, je te tiens au courant

    A+

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    On "glisse" là vers autre chose non exprimé à l'ouverture de ta discussion, non ?

    Pour ma part :
    1) j'ai donné la solution au problème, tel qu'il était posé.
    2) si ta question était finalement autre (et il semble que oui) :
    a) il s'agit d'une succession de décisions et non plus d'une seule difficulté bien isolée
    b) j'attendrai que tu aies décidé de définir (dans un "post" différent) clairement et complètement ton problème, une fois pour toutes (je n'aime pas "avancer" (à la place d'un autre, et selon un rythme décidé par l'autre) pas à pas...
    J'espère avoir été clair.

    Bonne continuation...

Discussions similaires

  1. Requete pour trouver des trous dans une suite
    Par Ben_Le_Cool dans le forum Langage SQL
    Réponses: 11
    Dernier message: 28/08/2009, 18h17
  2. [XL-2007] Incrémenter une valeur dans une suite de nombre
    Par beast666 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2009, 15h18
  3. Réponses: 1
    Dernier message: 18/06/2008, 14h15
  4. Recherche de mot précis dans une suite de mot
    Par Adrien38240 dans le forum C
    Réponses: 4
    Dernier message: 02/06/2008, 11h25
  5. [RegEx] Recherche dans une suite de nombres
    Par alibab dans le forum Langage
    Réponses: 11
    Dernier message: 20/09/2007, 08h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo