Inserer une chaine dans un tableau

Résolu/Fermé
eam - 20 déc. 2011 à 22:24
 eam - 21 déc. 2011 à 23:54
Bonjour à tous,

je suis débutant en VBA donc mon probleme sera peut etre simple (ou du moins je l'espère).

Je souhaiterai trouver faire une macro qui me permettrait de comparer chaque caractère se trouvant dans un emplacement precis d'une chaine de caractère (pris d'une cellule) a une valeur et compter le nombre de fois qu'elles sont égales.

j'avais pensé a convertir la chaine récupéré d'une cellule en un tableau et compter un à un les éléments, mais ça ne marche pas. Voici le code, si quelqu'un a une idée

Variables:

Nbcel 'nombre de lignes à traiter
c 'colonne
Chaine() as String 'tableaux

bout du programme

For I = 2 to nbcel

chaine=cells(i,c).Value

For J=1 to len(cells(i,c))-1

if chaine(j)=1 then

a=a+1

end if

j=j+6

next J

cells(i,c+1)=a

next i



A voir également:

3 réponses

Bonjour,

c'est pas très clair, donne un exemple précis, après on verra le code.

:o)
1
Merci de me répondre Yoda.

Pour exemple le voici:

Je récupère d'une cellule le texte suivant : 011000011101000100001111
Je souhaiterai qu'a partir du deuxieme caractère, compter l'occurence du caractère 1 tout les 7 caractères.

011000011101000100001111
La valeur que je recupère est donc 4, valeur que j'inscrirai dans une case precise

A savoir, une fois cette premiere boucle effectuée, je recommence et cette fois je commence a compter à partire du Troisième caractère, puis du quatrième, and so on

Voili voila
0
Merci de me répondre Yoda.

Pour exemple le voici:

Je récupère d'une cellule le texte suivant : 011000011101000100001111
Je souhaiterai qu'a partir du deuxieme caractère, compter l'occurence du caractère 1 tout les 7 caractères.

011000011101000100001111
La valeur que je recupère est donc 4, valeur que j'inscrirai dans une case precise

A savoir, une fois cette premiere boucle effectuer, je recommence et cette fois je commence a compter à partire du Troisième caractère, pui du quatrième, and so on

Voili voila
0
Bonjour,

Si j'ai bien saisi, cette procédure devrait marcher

Sub test()
Dim chaine As String
Dim carac As String
Dim i As Integer, j As Integer
Dim nbr As Integer 'nombre d'occurences


'exemple donné
chaine = "011000011101000100001111"
carac = "1"

For i = 2 To Len(chaine) - 8
nbr = 0
    For j = i To Len(chaine) Step 7
        If Mid(chaine, j, 1) = carac Then nbr = nbr + 1
    Next
MsgBox "Nombre d'occurences du caractère 1 à partir de la " & i & "ème position = " & nbr
Next
End Sub


A+.
0
Merci beaucoup pour ton aide,

il manquait a mon programme
For j = i To Len(chaine) Step 7
If Mid(chaine, j, 1) = carac Then nbr = nbr + 1
Next

Je crois qu'il va vraiment falloir je reprenne les bases de la POO.

Bonne Continuation
0