Inserer une chaine dans un tableau

Résolu
eam -  
 eam -
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

3 réponses

  1. yoda
     
    Bonjour,

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

    :o)
    1
    1. eam
       
      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
  2. eam
     
    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
  3. yoda
     
    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
    1. eam
       
      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