Incrémenter des valeurs dans une boucle pour textbox

Bonjour à tous,

Voici les lignes de code qui m'ennuient :

For i = 4 To 38

If (Sheets("Rapport").Controls("TextBox "& i).Value) > 0.05 And (Sheets("Rapport").Controls("TextBox" & i).Value) < -0.05 Then

Sheets("Rapport").TextBox(i).ForeColor = RGB(255, 0, 0)

ElseIf (Sheets("Rapport").TextBox(i).Value) < 0 And (Sheets("Rapport").TextBox(i).Value) > -0.05 Then

Sheets("Rapport").TextBox(i).ForeColor = RGB(0, 255, 0)

ElseIf (Sheets("Rapport").TextBox(i).Value) > 0 And (Sheets("Rapport").TextBox(i).Value) < 0.05 Then

Sheets("Rapport").TextBox(i).ForeColor = RGB(0, 0, 255)

End If

Next i

L'objectif de ce code est de remplir automatiquement des zones de texte à partir de cellules et de leur donner une mise en forme spéciale.

Lorsque je lance ce code via une macro affectée à un bouton, j'ai une erreur sur la 2nd ligne.

Après avoir regardé plusieurs solutions je n'y arrive toujours pas.

Auriez-vous des solutions ?

Merci d'avance

Bonjour

Un fichier est TOUJOURS le bienvenu

si je suis bien réveillé: si textbox> 0.05 et textbox < -0.05

Ca ne peux pas marcher...

A+ François

J'ai bien un .Value après mon textbox non ?

Bonjour,

Merci de bien vouloir utiliser les balises de code lorsque vous postez un code et ce, en cliquant sur l'icone </> disponible dans la barre de menu et en collant le code dans la fenêtre

J'ai rectifié votre premier post

Merci de votre participation

Crdlt

C'est pas le problème du value..

Comment veux tu qu'une valeur soir plus grande que 0.05 et plus petite que -0.05

A+ François

Ok merci, maintenant j'ai corrigé et j'obtiens toujours la même erreur :

image image

Bonjour

Je me coucherai moins con ce soir...lol

On ne peux faire de boucle sur les contrôles d'une feuille comme tu avais fait...

Mais il y a une autre possibilité

A+ François

Bonjour,

Je vois ce que vous avez fait, mais cela ne fonctionne pas sur tous, les couleurs ne s'appliquent pas sur les textbox 29-30 par exemple.

Je souhaiterais que entre 0 et 0.05 inclus ce soit bleu, -0.05 inclus et 0 ce soit vert et le reste soit rouge.

Je regarde pour essayer de comprendre le code que vous m'avez donné.

Merci de l'aide !

J'ai modifié une boucle dans le programme et cela fonctionne :

  With Sheets("Rapport")
  .TextBox4.Value = Cells(24, 4).Value
  .TextBox5.Value = Cells(25, 4).Value
  .TextBox6.Value = Cells(26, 4).Value
  .TextBox7.Value = Cells(27, 4).Value
  .TextBox8.Value = Cells(28, 4).Value
  .TextBox9.Value = Cells(29, 4).Value
  .TextBox10.Value = Cells(30, 4).Value
  .TextBox11.Value = Cells(31, 4).Value
  .TextBox12.Value = Cells(32, 4).Value
  .TextBox13.Value = Cells(33, 4).Value
  .TextBox14.Value = Cells(21, 7).Value
  .TextBox15.Value = Cells(22, 7).Value
  .TextBox16.Value = Cells(23, 7).Value
  .TextBox17.Value = Cells(24, 7).Value
  .TextBox18.Value = Cells(25, 7).Value
  .TextBox19.Value = Cells(26, 7).Value
  .TextBox20.Value = Cells(27, 7).Value
  .TextBox21.Value = Cells(28, 7).Value
  .TextBox22.Value = Cells(29, 7).Value
  .TextBox23.Value = Cells(30, 7).Value
  .TextBox24.Value = Cells(31, 7).Value
  .TextBox25.Value = Cells(32, 7).Value
  .TextBox26.Value = Cells(33, 7).Value
  .TextBox27.Value = Cells(21, 7).Value
  .TextBox28.Value = Cells(22, 10).Value
  .TextBox29.Value = Cells(23, 10).Value
  .TextBox30.Value = Cells(24, 10).Value
  .TextBox31.Value = Cells(25, 10).Value
  .TextBox32.Value = Cells(26, 10).Value
  .TextBox33.Value = Cells(27, 10).Value
  .TextBox34.Value = Cells(28, 10).Value
  .TextBox35.Value = Cells(29, 10).Value
  .TextBox36.Value = Cells(30, 10).Value
  .TextBox37.Value = Cells(31, 10).Value
  .TextBox38.Value = Cells(32, 10).Value
  For Each Obj In .OLEObjects
   If TypeOf Obj.Object Is MSForms.TextBox Then
    i = Val(Right(Obj.Name, 1))
    For i = 3 To 39
     If Obj.Object.Value < -0.05 Or Obj.Object.Value > 0.05 Then
      Obj.Object.ForeColor = RGB(255, 0, 0)
     ElseIf Obj.Object.Value >= -0.05 And Obj.Object.Value < 0 Then
      Obj.Object.ForeColor = RGB(0, 255, 0)
     ElseIf Obj.Object.Value > 0 And Obj.Object.Value <= 0.05 Then
      Obj.Object.ForeColor = RGB(0, 0, 255)
     ElseIf Obj.Object.Value = 0 Then
      Obj.Object.ForeColor = RGB(0, 0, 0)
     End If
    Next i

   End If
  Next
  End With
End Sub

Si j'ai fait une erreur, vous pouvez me modifier.

Problème corrigé

A+ François

elle sert à rien la boucle for i

par contre

Val(Right(Obj.Name, 1)) ne donnera que 0 à 9 (que j'ai corigé)

Super Merci ;)

Rechercher des sujets similaires à "incrementer valeurs boucle textbox"