Boucle for

Bonjour et merci pour votre collaboration.

Je viens de faire une une macro dans laquelle un problème subsiste.

Celle-ci à pour but de chercher une valeur dans une colonne, une fois trouvée qu'elle reporte cette valeur

en fin de tableau sur la première colonne puis la valeur situé à trois colonne sur la droite sur la dernière colonne.

Le problème est que cette valeur se situe sur plusieur ligne de la même colonne et que l'action de reporter la valeur se faite que sur la dernière valeur trouvé au lieu de les mettre les une après les autres.

Voici la macro en question:

Sub test()

Dim a As Range

Dim i As Integer

Dim dernligne As Integer

Dim d As Range

Dim dernligne1 As Integer

dernligne1 = Range("a65536").End(xlUp).Row + 1

dernligne = Range("a65536").End(xlUp).Row

For i = 1 To dernligne

Set a = Sheets("sheet1").Cells(i, "d").Find("SOLDE", lookat:=xlPart)

If Not a Is Nothing Then

Cells(i, 1) = a.Value

Cells(dernligne1, 1) = Cells(i, 1).Value

'Cells(dernligne1, 1) = a.Value

'Cells(dernligne1, "G") = Cells(i, 7).Value

'Cells(dernligne1, 1).Offset(0, 6) = a.Offset(0, 4).Value '<----- copie de la valeur débit

'Cells(dernligne1, 1).Offset(0, 7) = a.Offset(0, 5).Value '<----- copie de la valeur crédit

End If

Next i

End Sub

Bonsoir ims

Lorsque nous aurons un fichier pour faire les tests et aider, cela ira mieux. Dur dur de travailler toujours dans le vide.

D'autre part , tu dois mettre des balises pour que ton code soit plus lisible

Merci

Merci pour ton retour rapide.

Voici le fichier.

Bonjour,

Le problème est que tu as une ligne qui comporte ceci :

(*) Sous réserve des opérations en cours d'enregistrement et d'une provision suffisante et disponible lors de l'arrêté du solde du compte réalisé en fin de journée.

et qui contient solde !

Ajoute ceci

        dernligne1 = dernligne1 + 1

dans ton code

For i = 1 To dernligne

    Set a = Sheets("sheet1").Cells(i, 4).Find("SOLDE", lookat:=xlPart) 'on recherche ici la valeur "solde" en partie dans la cellule

    If Not a Is Nothing Then  'ici la condition doit etre remplis pour continuer
        Cells(dernligne1, 1) = a.Value 'place la valeur trouver pour la mettre à la fin du tableau
        Cells(dernligne1, 1).Offset(0, 6) = a.Offset(0, 4).Value '<----- copie de la valeur débit à la fin du tableau sur la meme colonne
        Cells(dernligne1, 1).Offset(0, 7) = a.Offset(0, 5).Value '<----- copie de la valeur débit à la fin du tableau sur la meme colonne
        dernligne1 = dernligne1 + 1
    End If

Next i

Bonjour après avoir tester la macro le résultat est identique.

On retrouve au final seulement la dernière valeur trouver de "solde".

Ce que je recherche c'est qu'à chaque fois que la valeur solde est trouvé qu'elle soit reporté à la dernière ligne du tableau.

Merci d'avance pour votre aide.

Oh !! pas moi,

je trouve ceci

SOLDE CREDITEUR AU 29/09/2017

SOLDE CREDITEUR AU 30/09/2017

(*) Sous réserve des opérations en cours d'enregistrement et d'une provision suffisante et disponible lors de l'arrêté du solde du compte réalisé en fin de journée.

Je télécharge le fichier et vais essayer de comprendre où est mon erreur...

Bonsoir steelson, bonsoir à tous

Steelson a raison mais si tu veux vraiment tous tes soldes, il ne faut pas chercher que dans la colonne 4, mais aussi dans la 3 ????

A+

Alors une chose que je n'arrive pas à comprendre.

J'ai exactement la même macro que celle que tu as écrite mais dès lors que je fais F5 sur ma macro celle ci me donne un seul résultat qui est la dernière alors que lorsque je fais F5 sur ta macro les trois résultats s'affiche les uns après les autres.... moi pas comprendre ^^

Oui Patty tu as raison. Je cherchais la logique à appliquer maintenant je peux ajouter la colonne 3 à la recherche merci encore pour votre temps et conseil.

Bonsoir

C'est évident puisque tu n'incrémentais pas ta ligne d'insertion....donc tu écrasais ton dernier solde copié...

A+

mets ta macro en ligne pour voir ...

j'espère que tu as bien mis

dernligne1 = dernligne1 + 1

et non

dernlign1 = dernligne + 1

Re

Tu as été sage, voici ton fichier corrigé, il inclut la colonne 3

Dis-moi si cela te va

Bonne soirée

J'ai récupéré ta macro copier coller c'est exactement la même.

Pour le coût je peux continuer à rédiger ma macro. En tout cas merci beaucoup à vous deux vos conseils sont efficaces à 200 pour cent.

Bonsoir

La même que quoi ??

Dans le dernier fichier que je t"ai envoyé, j'ai inclus la colonne 3 et supprimé la ligne :

(*) Sous réserve des opérations en cours d'enregistrement et d'une provision suffisante et disponible lors de l'arrêté du solde du compte réalisé en fin de journée.

Alors si tu trouves que c'est la même chose ??? !!!

Je te laisse continuer tout seul

je ne comprend rien

Ou tu es dans les "vaps" ou c'est moi

Bonne soirée

La même macro lorsque je compare la macro écrite sur le fichier que tu as mis et la macro corriger sur mon fichier ce sont les mêmes macro hors je n'ai pas le même résultat.

C'est pourquoi j'ai copier la macro de ton fichier pour la mettre dans le miens et cela fonctionne.

Compris? ^^

Bonjour après avoir tester la macro le résultat est identique.

On retrouve au final seulement la dernière valeur trouver de "solde".

Ce que je recherche c'est qu'à chaque fois que la valeur solde est trouvé qu'elle soit reporté à la dernière ligne du tableau.

Merci d'avance pour votre aide.

C'était pareil ? tu n'avais donc pas copié ce que j'avais proposé ?

Si si j avais mis la ligne manquante ...

Rechercher des sujets similaires à "boucle"