Incrémentation du contenu des Textboxes

MaximeRoth

XLDnaute Junior
Bonjour le forum,

Je souhaite faire quelque chose de simple (enfin je pense :)) mais pas moyen d'y arriver.
Je plante le décors :

Pour X ou Y raison j'ai usf sur lequel j'ai 101 textboxes. Ma première textbox correspond à la quantité (nommée ici "quantity). Je remplis alors les 100 autres textboxes en fonction de ma quantité et du contenu de ma première textbox. La suite est simple: Textbox (X).value = Textbox (X-1).value + 1

Mon code ressemble alors à cela:

Code:
    For x = 2 To Quantity.Value
        Me.Controls("Textbox" & x).Value = TextBox1.Value + x
    Next x

Cela marche presque mais j'ai toujours Textbox (X).value = Textbox (X-1).value + 2 et non + 1...
Et dès que ma textbox 1 est vide (j'efface son contenu) j'ai une erreur incompatibilité de type.

Donc si vous avez des suggestions je suis preneur :)

Bonne journée à tous.

Max
 

Pièces jointes

  • Test.xlsm
    16.8 KB · Affichages: 24
  • Test.xlsm
    16.8 KB · Affichages: 36
  • Test.xlsm
    16.8 KB · Affichages: 34

Papou-net

XLDnaute Barbatruc
Re : Incrémentation du contenu des Textboxes

Bonjour Max,

Apparemment, et si j'ai bien tout compris, ta macro était dans le mauvais TextBox. De plus, les repères débutent à 1 et non à 2.

Essaie donc comme ceci :

Code:
Private Sub Quantity_Change()
    For x = 1 To Quantity.Value
        Me.Controls("Textbox" & x).Value = Quantity.Value + x
    Next x

End Sub
A +

Cordialement.
 

MaximeRoth

XLDnaute Junior
Re : Incrémentation du contenu des Textboxes

Bonjour Papou-net,

J'imaginais plutôt ce genre de fonctionnement:

L'utilisateur entre une quantité dans la textbox quantité.
Ensuite il entre un chiffre dans la textbox1 et si par exemple la quantité est 5 les 5 premières textbox se remplissent par rapport à la première en suivant cette logique : Textbox (X).value = Textbox (X-1).value + 1

Je vais essayer ta solution mais je ne suis pas sur que cela fasse ce que je souhaite.

A+

Max
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Incrémentation du contenu des Textboxes

Bonjour Max, bonjour le forum,

Peut-être comme ça :
Code:
Private Sub TextBox1_Change()
For x = 2 To Quantity.Value
    Me.Controls("Textbox" & x).Value = IIf(Me.TextBox1.Value = "", "", Me.Controls("TextBox" & (x - 1)).Value + 1)
Next x
End Sub

[Édition]
Bonjour Papou-Net on s'est croisé...
 

MaximeRoth

XLDnaute Junior
Re : Incrémentation du contenu des Textboxes

Bonjour Robert,

Merci en effet avec le "-1" ça marche beaucoup mieux :)
Cependant j'ai toujours le même problème quand j'efface manuellement le contenu de ma textbox1 j'ai une Incompatibilité de type.

A+

Max
 

Papou-net

XLDnaute Barbatruc
Re : Incrémentation du contenu des Textboxes

Bonjour Papou-net,

J'imaginais plutôt ce genre de fonctionnement:

L'utilisateur entre une quantité dans la textbox quantité.
Ensuite il entre un chiffre dans la textbox1 et si par exemple la quantité est 5 les 5 premières textbox se remplissent par rapport à la première en suivant cette logique : Textbox (X).value = Textbox (X-1).value + 1

Je vais essayer ta solution mais je ne suis pas sur que cela fasse ce que je souhaite.

A+

Max

RE :

C'est bien ce qu'il me semblait, que je n'avais rien compris.

Dans ce cas, je te joins la solution sous forme de copie de ton fichier, pour ne pas t'interrompre dans ta recherche. Si tu n'aboutis pas, tu pourras toujours l'afficher.

Cordialement.

PS : Bonjour Robert, heureux de te croiser.
 

Pièces jointes

  • Copie de Test MaxRoth.xlsm
    17.5 KB · Affichages: 34

MaximeRoth

XLDnaute Junior
Re : Incrémentation du contenu des Textboxes

Merci Papou-net,

Je regarde malheureusement de suite car au boulot je n'ai pas beaucoup de temps pour la recherche :(

A+

Max

[EDIT] La solution était en faite identique à celle que me proposait Robert. J'avais donc toujours l'erreur d'incompatibilité de type si ma textbox1 = "". J'ai donc ajouté cette ligne :
Code:
If TextBox1.Value = "" Then TextBox1.Value = "0"
Petite bidouille pour forcer le contenu de ma TB1 à 0 si elle est vide ce qui empêche l'erreur d'incompatibilité.

En attendant encore merci pour votre aide et bonne aprem.
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Incrémentation du contenu des Textboxes

RE :

Voici donc la réponse à ce que je crois avoir compris :

Code:
Private Sub TextBox1_Change()
If TextBox1 = "" Then Exit Sub
  For x = 2 To 100
    If x <= CInt(Quantity.Value) Then
      Me.Controls("Textbox" & x).Value = Me.Controls("textbox" & x - 1).Value + 1
      Else
      Me.Controls("Textbox" & x).Value = ""
    End If
  Next
End Sub
La macro efface toutes les données qui pourraient subsister après modification de la quantité. Si TextBox1="", plus de plantage mais vois si le résultat convient.

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 322
Messages
2 087 284
Membres
103 507
dernier inscrit
tapis23