comptage
Le
yan

bonjour a tous
Dans une chaine alphabétique aléatoire du type par exemple"AADEBCEE"je
doit tester si un couple de lettres consécutives existe et si il est seul
dans la chaine. La chaine ne contient que des A,B,C,D,E
Dans mon exemple la réponse est fausse car 1-2 a bien un couple identique
(AA) mais 7-8 en à un aussi
Elle aurait était vrai si la chaine était "AADEBCEB"
j'ai mis dans des variables de m1 à m8 chaque lettres et j'ai voulu utiliser
un "XOR" en faisant
if m1=m2 xor m2=m3 xor m3=m4.xor m7=m8 then
mais cela ne marche pas mon car instruction ne fait pas un "xor global" mais
traite les xor un par un tout du moins c'est ce qu'il me semble car si
j'affecte la même lettre a toute mes variables, toute mes condition m1=m2,
m2=m3.seront vrai ,si il y a un xor c'est faux (normal vrai xor vrai =
faux) et si j'en mets 3 cela devient vrai.
Apres avoir été un peu long et je m'en excuse comment résoudre ce problème
autre question comment utiliser "count" ou autre pour connaitre le nombre de
A dans la chaine , le nombre de B
j'ai résolu cela en faisant des boucles et un test sur chaque type de
lettres
chaque lettre étant déjà dans une variable j'ai fait
for x=1 to 8
if m(x)="A" then a=a+1
next
Et la même chose pour B,C.
Ca marche mais peut être pas très "orthodoxe"
votre avis
Merci
Dans une chaine alphabétique aléatoire du type par exemple"AADEBCEE"je
doit tester si un couple de lettres consécutives existe et si il est seul
dans la chaine. La chaine ne contient que des A,B,C,D,E
Dans mon exemple la réponse est fausse car 1-2 a bien un couple identique
(AA) mais 7-8 en à un aussi
Elle aurait était vrai si la chaine était "AADEBCEB"
j'ai mis dans des variables de m1 à m8 chaque lettres et j'ai voulu utiliser
un "XOR" en faisant
if m1=m2 xor m2=m3 xor m3=m4.xor m7=m8 then
mais cela ne marche pas mon car instruction ne fait pas un "xor global" mais
traite les xor un par un tout du moins c'est ce qu'il me semble car si
j'affecte la même lettre a toute mes variables, toute mes condition m1=m2,
m2=m3.seront vrai ,si il y a un xor c'est faux (normal vrai xor vrai =
faux) et si j'en mets 3 cela devient vrai.
Apres avoir été un peu long et je m'en excuse comment résoudre ce problème
autre question comment utiliser "count" ou autre pour connaitre le nombre de
A dans la chaine , le nombre de B
j'ai résolu cela en faisant des boucles et un test sur chaque type de
lettres
chaque lettre étant déjà dans une variable j'ai fait
for x=1 to 8
if m(x)="A" then a=a+1
next
Et la même chose pour B,C.
Ca marche mais peut être pas très "orthodoxe"
votre avis
Merci
Pas certain d'avoir compris, mais:
à effectuer sur une copie du dossier:
1-tu comptes ne nombre de caractères contenus dans la cellule --> =nbcar
(a1)
2- Via le menu "chercher-remplacer", tu remplaces A par rien (laisser
fenêtre vide) puis tu valides.
3- tu recomptes le nb de caractères. Tu auras forcément le nb de "A" qui
étaient présents.
A bientôt
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"yan" a écrit dans le message de groupe de discussion :
50b63d03$0$1403$
bonjour a tous
Dans une chaine alphabétique aléatoire du type par exemple"AADEBCEE"je
doit tester si un couple de lettres consécutives existe et si il est seul
dans la chaine. La chaine ne contient que des A,B,C,D,E
Dans mon exemple la réponse est fausse car 1-2 a bien un couple identique
(AA) mais 7-8 en à un aussi
Elle aurait était vrai si la chaine était "AADEBCEB"
j'ai mis dans des variables de m1 à m8 chaque lettres et j'ai voulu utiliser
un "XOR" en faisant
if m1=m2 xor m2=m3 xor m3=m4..........xor m7=m8 then ......
mais cela ne marche pas mon car instruction ne fait pas un "xor global" mais
traite les xor un par un tout du moins c'est ce qu'il me semble car si
j'affecte la même lettre a toute mes variables, toute mes condition m1=m2,
m2=m3....seront vrai ,si il y a un xor c'est faux (normal vrai xor vrai faux) et si j'en mets 3 cela devient vrai.
Apres avoir été un peu long et je m'en excuse comment résoudre ce problème
autre question comment utiliser "count" ou autre pour connaitre le nombre de
A dans la chaine , le nombre de B.........
j'ai résolu cela en faisant des boucles et un test sur chaque type de
lettres
chaque lettre étant déjà dans une variable j'ai fait
for x=1 to 8
if m(x)="A" then a=a+1
next
Et la même chose pour B,C..........
Ca marche mais peut être pas très "orthodoxe"
votre avis
Merci
c'est pas du tout ça que je cherche
j'ai omis de préciser que ceci est dans une procedure vba
je vais generer une chaine qui debute a AAAAAAAA jusque FFFFFFFF
et cette chaine doit repondre a certain criteres dont celui qui me préocupe
Merci a toi
"Jacquouille" news:50b63ee7$0$3109$
Sub Macro1()
Dim m As String, x As Integer
m = "AADEBCEE"
For x = 2 To Len(m) - 1
If Mid(m, x, 1) = Mid(m, x - 1, 1) Or Mid(m, x, 1) = Mid(m, x + 1, 1)
Then a = a + 1
Next
MsgBox a
End Sub
--
isabelle
Le 2012-11-28 14:38, yan a écrit :
pour m = "AAEEBCEE" ,il me donne 4 ??
pour m = "AADEBCEE" , il donne 2 ....
PS :manquerait pas un petit _ ou un end if ?
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
k95ree$3g7$
bonjour yan,
Sub Macro1()
Dim m As String, x As Integer
m = "AADEBCEE"
For x = 2 To Len(m) - 1
If Mid(m, x, 1) = Mid(m, x - 1, 1) Or Mid(m, x, 1) = Mid(m, x + 1, 1)
Then a = a + 1
Next
MsgBox a
End Sub
--
isabelle
Le 2012-11-28 14:38, yan a écrit :
--
h2so4
ca PAN
pique DORA
.
il manquait un x=x+1
If Mid(m, x, 1) = Mid(m, x - 1, 1) Or Mid(m, x, 1) = Mid(m, x + 1, 1)
Then a = a + 1: x = x + 1
t'as encore les yeux clair à cette heure-ci ;-)
--
isabelle
Le 2012-11-28 17:21, Jacquouille a écrit :
merci a tous et a isabelle pour cette solution simple a laquelle je n'avait
pas pensé
et fait exactement le travail que j'attendais
Merci
A+
Yan
"isabelle" news:k967v3$2kb$
J'étais occupé à la transaction pour les bouquins...
Encore merci
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
k967v3$2kb$
%-(
il manquait un x=x+1
If Mid(m, x, 1) = Mid(m, x - 1, 1) Or Mid(m, x, 1) = Mid(m, x + 1, 1)
Then a = a + 1: x = x + 1
t'as encore les yeux clair à cette heure-ci ;-)
--
isabelle
Le 2012-11-28 17:21, Jacquouille a écrit :