Problème boucle for

Bonjour,

Je voudrais faire une boucle for qui incrémente les text box. Je m'explique je fait de la recherche de contenu dans les textbox, et j'ai déja une macro qui marche. Je voudrais l'améliorer pour qu'elle puisse s'arréter suivant le choix de l'opérateur.

Voici ce que j'aimerais faire :

For laShape.Name = "Text Box 1" To laShape.Name = "Text Box " & z
            If laShape.TextFrame.Characters.Text Like "*" & numOf & "*" Then trouve = True
            If trouve Then z = z + 1
                            Exit For
            End If
            z = z + 1
        Next laShape

Pour le next, vu mes conditions je doit incrémenter sur le z ou sur la textbox?

Merci d'avance

++

Bonjour

Pourtant dans cette macro la boucle s'arrête dès qu'elle a trouvée la bonne TextBox

https://forum.excel-pratique.com/excel/rechercher-dans-une-zone-de-texte-t24138.html#p136931

Comprends pas ce que tu veux faire

iguan a écrit :

Je voudrais l'améliorer pour qu'elle puisse s'arréter suivant le choix de l'opérateur.

A te lire avec plus de renseignement car je suis largué

Re,

Désolé pour mon explication légère.

Ma macro doit chercher dans le contenu des textbox une chaine de caractère voulu par l'utilisateur (comme ctrl+f mais pour les textbox). La macro démarre de la premiere feuille et de la premiere textbox. Cette macro marche parfaitement et sans accro. maintenant mon objectif est de rechercher la chaine de caractère dans toutes les textbox, par la je veut dire que la personne aura le choix de finir ou non sa recherche par une simple messagebox yes/no.

Après quelque réflextion et de recherche sur le net, j'ai trouver que la façon la plus simple était de faire quelque chose dans ce genre la:

For Each laFeuille In ThisWorkbook.Sheets
        For Each laShape In laFeuille.Shapes
            n = z
        Next laShape
        'boucler sur toutes les formes de la feuille
        For z = debut To n
            If userform1.Controls("TextBox" & z) = "" Then
            If laShape.TextFrame.Characters.Text Like "*" & numOf & "*" Then trouve = True
            If trouve Then z = z + 1
                            Exit For
            End If
        Next z
    If trouve Then Exit For
    z = 1
    Next laFeuille
    debut = z

La premiere boucle va incrémenter les feuille "For Each laFeuille In ThisWorkbook.Sheets"

La deuxieme me permettra d'avoir la derniere textbox pour la feuille selectionner. "For Each laShape In laFeuille.Shapes"

Enfin la derniere devra être la boucle de recherche "For z = debut To n". Le problème ce situe dans cette boucle. Je n'arrive pas a faire comprendre qu'il doit selectionner la textbox 1, 2, 3, ..., n et comparer son contenu.

Voila, en espérant avoir été plus claire.

A+

PS: le reste de la macro va permettre de centrer l'écran sur la textbox trouver.

Bonjour

Je me suis servi du fichier de l'autre post

Re,

Merci banzai64 exactement ce qu'il me falait. changer la fin de la boucle tout simple mais très ingénieux.

Encore merci.

a+

Rechercher des sujets similaires à "probleme boucle"