VBA - plage de donnee & extraction meme mot plusieurs fois

bonjour

novice en vba ( je m'attaque a une partie que je ne maitrise pas bcp)

j'ai galere une bonne partie de la journee sur ce petit code ,

comme je ne maitrise pas tt j'ai besoin de faire avec de multiples etapes

et j'ai besoin de verifié ce que je fais pas tjs drole de debuter ....

bon ceci etant dit

je ne suis pas sur d'avoir pris le bon chemin pour faire ce que je souhaite ...

j'aimerai dire a vba que ma plage de recherche est de 1 a 10

extraire mon 1 ier chiffre le mettre dan s une case

puis que cette meme plage passe ensuite de 11 a 20

ect ...

plus clair avec le fichier en piece jointe

voici ce que j'ai coder en fouillant sur le net et remis a ma sauce

i = "global"

Set x = Range("A:a").Find(i, , xlValues, xlPart, , , False)
           ' If Not x Is Nothing Then MsgBox "trouvé en " & x.Address Else MsgBox "n'existe pas..."
            ' GoTo apres
               d = Len(x) ' calcul la longeur de la pharse
               b = InStr(x, ":") ' calcul combien de lettre avant  :
               f = Right(x, d - (b + 1)) ' affiche  les chiffres
              c = Replace(f, "%", " ")

 Range("d4") = c

merci de votre aide

18vba.xlsm (20.40 Ko)

Bonjour

Un essai à tester.

Attention à ne pas mettre des points virgules à la place des deux points en colonne A.

Cela te convient-il ?

18vba.xlsm (25.83 Ko)

oui oui cela semble pas mal grand Merci , j e vais pouvoir analyser et digérer tous cela

je regarderai cela plus en details demain

plus gd chose a voir avec mon code lol je crois que pour obtenir le meme resultats que toi avec mon code il m'aurait falllu 3 page entiere de code ...

( wend je connaissais pas mais je me doutais qu'il fallait une boucle , et je trouvais split un peu barbare mais vu l'effficacite de ton code je vais mis interressé )

encore merci ( je vais peut etre réussir a recaser mon replace % ,"" ) car je ne veux garder que les chiffres


par contre peut etre un petit souci

entre jacques et jean luc l'ecart n'es pas tjs constant ( nb de ligne )

il l'es pour les classement mais pas forcement entre les personnes

foufie a écrit :

entre jacques et jean luc l'ecart n'es pas tjs constant ( nb de ligne )

Alors, on abandonne le while...wend et on fait une autre sorte de boucle.

La macro tournera plus longtemps mais, tant pis, elle a le temps !

Bye !

17vba-v2.xlsm (26.16 Ko)

merci c'est parfait cette fois ci !

je susi entrain d'utiliser le code en question et j'esaye de comprendre

j'ai pas eu trop le tps avant

 ....

n = 8
    lgn = 3
    For ln = 8 To Range("A" & 65536).End(xlUp).Row
    'While Range("A" & ln) <> ""
        If Range("A" & ln + 1) = "classement par points" Then
            j = 0
            Range("H" & lgn) = Range("A" & ln)
            For n = 2 To 30 Step 14
                Cells(lgn + 1, 9 + j) = Split(Range("A" & ln + n), ":")(1)
                Cells(lgn + 2, 9 + j) = Split(Range("A" & ln + n + 2), ":")(1)
                Cells(lgn + 3, 9 + j) = Split(Range("A" & ln + n + 4), ":")(1)
                j = j + 2

            Next n
            'ln = ln + 44
            lgn = lgn + 5

        End If
    'Wend

    Next ln

For ln = 8 To Range("A" & 65536).End(xlUp).Row

on regarde en colone de A jusque a A 65536 tous les 8 lignes ?

si dans la colonne A je trouve " classement poiin" alors je

fais un copier coller ? de la colone A vers H ?

ensuite on fait la boucle (

Split(Range("A" & ln + n), ":")(1) > regarde ds colone A et garde ce qui est apres : et afiche ca en cell ( colone , ligne )

et on execute autant que la boucle le necessite

Bonjour

foufie a écrit :
For ln = 8 To Range("A" & 65536).End(xlUp).Row

on regarde en colone de A jusque a A 65536 tous les 8 lignes ?

Non, à partir de la ligne 8. Si c’était toutes les 8 lignes, onaurait, en plus : ‘’Step 8 » »

si dans la colonne A je trouve " classement poiin" alors je

fais un copier coller ? de la colone A vers H ?

C’est ça !

Split(Range("A" & ln + n), ":")(1)

> regarde ds colone A et garde ce qui est apres : et afiche ca en cell ( colone , ligne )

et on execute autant que la boucle le necessite

Exact.

Bye !

Rechercher des sujets similaires à "vba plage donnee extraction meme mot fois"