Comparer des textbox sans les nommer

pingouinal

XLDnaute Occasionnel
Bonjour tout le monde,

J'ai dans un userform une centaine de textbox regroupées en deux parties.
Chaque partie est identique, j'entends par là qu'il y a les même textbox avec le même nom (à part le chiffre à la fin du nom qui change (1 pour la première partie et 2 pour la deuxième)).

J'aimerais comparer les textbox identiques et modifier la couleur de celle qui a la plus faible valeur. Par exemple : si Total1 > Total2 alors Total2 devient rouge.

Je souhaiterais procéder de manière générique plutôt que de coder ça textbox par textbox, donc je cherche quelque chose du genre : si 'nom de textbox' & 1 > 'nom de textbox' & 2 alors 'nom de textbox' & 2 devient rouge.

C'est certainement tout bête, mais je n'arrive pas à trouver comment nommer cette opération. Donc si quelqu'un a une idée, je suis preneur.

D'avance merci pour votre aide.

PS : Comme je ne sais pas si j'ai été très clair, je peux créer un fichier exemple en cas de demande.
 

job75

XLDnaute Barbatruc
Re : Comparer des textbox sans les nommer

Bonjour pingouinal,

Il serait sans doute plus simple de conserver la même racine "TextBox" pour les noms de toutes les TextBox.

Et de mettre derrière des numéros groupés par paires, par exemple :

TextBox1 => TextBox2
TextBox3 => TextBox4
TextBox5 => TextBox6

Le travail sur les noms serait alors très simple (sur mon exemple, boucle For avec Step 2).

J'ai remarqué que beaucoup d"exceliens renomment les contrôles dans les UserForms, alors que ça ne sert pas à grand'chose, et même, comme ici, complique le travail.

A+
 

MJ13

XLDnaute Barbatruc
Re : Comparer des textbox sans les nommer

Bonjour Pingouinal,Job, CC

J'ai remarqué que beaucoup d"exceliens renomment les contrôles dans les UserForms, alors que ça ne sert pas à grand'chose, et même, comme ici, complique le travail.

Job: Dans ce cas peut-être mais c'est quand même plus simple d'avoir un nom explicite plutôt qu'un nom qui ne veut rien dire pour savoir de quoi on parle.

Il faut se méfier des apriori :).
 

job75

XLDnaute Barbatruc
Re : Comparer des textbox sans les nommer

Re, salut c-c, Michel,

@ c-c : oui c'est précisément ce que je suggérais :)

@ Michel : en effet, si les macros sont tarabiscotées :eek: vaut mieux donner des noms explicites.

Cela dit, pour ne pas obliger pingouinal à renommer toutes ses TextBox, voici une solution :

Code:
Dim c As Control, nom$
With UserForm1
  For Each c In .Controls
    If Right(c.Name, 1) = "1" Then
      nom = Left(c.Name, Len(c.Name) - 1) & 2 'nom de la 2ème TextBox
      .Controls(nom).BackColor = IIf(c > .Controls(nom), &HFF&, &H80000005)
    End If
  Next
End With

A+
 

pingouinal

XLDnaute Occasionnel
Re : Comparer des textbox sans les nommer

Bonjour à tous et merci pour vos réponses.

Concernant le nommage des textbox, comme l'ont dit certains, c'est plus facile d'avoir un nom de textbox qui correspond à quelque chose pour s'y retrouver.

Je vais tester les solutions que vous me proposer et je vous tiendrai au courant si ça marche.

Encore merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 088 013
Membres
103 699
dernier inscrit
samSam31