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 :

reconstrution de sequence avec randomisation en fonction des occurences [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 4
    Par défaut reconstrution de sequence avec randomisation en fonction des occurences
    Bonjour
    En qq mots, ma macro lit un tableau et récupere :
    1)- le premier caractere à gauche dans la colonne A (HRU) du tableau. Ce caractère est le C1.
    - le premier caractere à droite dans la colonne A (HRU) du tableau. Ce caractère est la lettre

    2)Ensuite elle lit une table de correspondance, et fait la correspondance entre lettre une autre chaine de caracteres, le LU.

    3) Ensuite elle reconstruit la chaine de caracteres du LU (LU2 donc) de la table de correspondance, mais en démarrant du caractere C1.

    Mon problème :
    Quand j'ai plusieurs occurrences du C1 dans la chaîne LU, la macro démarre toujours par la première occurrence, alors que je voudrais qu'aléatoirement elle démarre par la 1iere, 2ième ou 3ième.

    Exemple : avec C1 = C et LU = ADCCCU je ne voudrais pas toujours avoir CCCUAD mais également CCUADC et CUADCC !

    voici l'endroit maudit :
    #
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    lettre = Right(HRU, 1)   
         Sheets("table_corresp").Activate
         C1 = Left(HRU, 1)   
     
      With ActiveSheet.Range("A2:B12")
           Set Cellule = .Find(lettre, lookat:=xlPart, MatchCase:=True) 
            Do
             If Not Cellule Is Nothing Then
                firstAddress = Cellule.Address
                LU= Cellule.Offset(0, -1).Value             
                nbrcrop = Len(LU)  
                LU2= Right(LU, Len(LU) + 1 - InStr(1, LU, C1, 1)) & Left(LU, InStr(1, LU, C1, 1) - 1)
    #

    Comment faire ?

    Merci d'avance,

    Bien cordialement,
    OPLE

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    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
    Dim NbCar As Integer, Pos As Integer
    Randomize
    lettre = Right(HRU, 1)
         Sheets("table_corresp").Activate
         C1 = Left(HRU, 1)
     
      With ActiveSheet.Range("A2:B12")
           Set Cellule = .Find(lettre, lookat:=xlPart, MatchCase:=True)
            Do
             If Not Cellule Is Nothing Then
                firstAddress = Cellule.Address
                lu = Cellule.Offset(0, -1).Value
                nbrcrop = Len(lu)
                NbCar = Len(lu) - Len(Application.Substitute(lu, C1, ""))
                Pos = Application.RandBetween(1, NbCar)
                LU2 = Right(lu, Len(lu) + 1 - Pos) & Left(lu, Pos - 1)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/10/2013, 05h15
  2. [MySQL] Trier en fonction des occurences d'une autre table
    Par Dev222 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/06/2013, 11h43
  3. Réponses: 1
    Dernier message: 01/02/2013, 14h53
  4. Réponses: 5
    Dernier message: 31/01/2012, 15h01
  5. fonctions des listes chaînées, et problème avec le main
    Par bounadalvidal dans le forum Débuter
    Réponses: 2
    Dernier message: 25/09/2010, 18h04

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