Randomisation des occurrences d'un caractère dans une chaîne pour recontruction

ople Messages postés 3 Date d'inscription lundi 13 février 2012 Statut Membre Dernière intervention 12 mai 2013 - 12 mai 2013 à 10:25
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 12 mai 2013 à 10:44
Bonjour

1)En quelques mots, ma macro lit un tableau et récupere :
- 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 chaine LU, la macro démarre toujours par la premiere 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 :
#
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

1 réponse

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 mai 2013 à 10:44
Bonjour,
La fonction split te permettra de déterminer le nombre NB d'occurences d'un caractères dans une chaîne
La fonction Rnd et l'instruction Randomize te permettront de tirer aléatoirement un chiffre sur NB
Le reste tombe sous le sens ... (juste un peu de réflexion... et l'utilisation de Mid )
Ouvre ton aide VBA sur les mots que j'ai soulignés.
Reviens (si encore en difficulté) avec le code tenté sur ces bases

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Rejoignez-nous