Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Valeur dans TextBox compris entre

Francky79

XLDnaute Occasionnel
Bonjour,

Quelle syntaxe pour le code ci-dessous ?
Si la valeur est comprise en 5 et 10 la longueur de la TextBox sera de 120

Private Sub TextBox9_Change()
Select Case Me.TextBox9.Value
Case Is <= 5
Me.TextBox9.Width = 60
Case Is > 5 <= 10
Me.TextBox9.Width = 120
End Select
End Sub

Merci de votre aide,
 

ChTi160

XLDnaute Barbatruc
Bonjour Francky79
ce que j'ai mis et qui semble répondre à la demande(perfectible)
VB:
Private Sub TextBox9_Change()
Select Case True
Case Me.TextBox9.Value <= 5
Me.TextBox9.Width = 60
Case Me.TextBox9.Value > 5 And Me.TextBox9.Value <= 10
Me.TextBox9.Width = 120
End Select
End Sub
Jean marie
 

Francky79

XLDnaute Occasionnel
Possible avec une variable ?

Du genre si la :

TextBox9.Value égal 5 alors Me.TextBox9.Width = 60
TextBox9.Value égal 5 + 1 alors Me.TextBox9.Width = 60 + 1
et ainsi de suite jusqu'à 100.

Pour faire genre une barre d'avancement du projet.

Merci,
 

job75

XLDnaute Barbatruc
Bonsoir Francky79, ChTi160,

Vous pouvez utiliser ces 2 macros :
VB:
Private Sub TextBox9_Change()
Dim v&
v = CLng(Val(TextBox9))
If v >= 5 And v <= 100 Then TextBox9 = v: TextBox9.Width = v + 55
End Sub

Private Sub TextBox9_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim v&
v = CLng(Val(TextBox9))
If v >= 5 And v < 100 Then TextBox9 = v + 1 'incrémente
End Sub
La 1ère dimensionne la TextBox, la 2ème l'incrémente avec le double-clic.

A+
 

Francky79

XLDnaute Occasionnel
Merci Job75,

Par contre j'aurais voulu que la longueur de la TextBox9 s'incrémente toute seule suivant sa valeur.
Si valeur = 5 longueur TextBox9 20 si 10 longueur 40 et ainsi de suite .
La valeur de la TextBox9 pourra être de 1, 2, 3, 4, jusqu'à 100.
Voir fichier en pièce jointe.

Merci pour ton aide.
 

Pièces jointes

  • Avancement.xlsm
    246.8 KB · Affichages: 3

patricktoulon

XLDnaute Barbatruc
Bonjour
pour le fun
VB:
Private Sub TextBox1_Change()
    Dim LB 'limite Basse
    LB = 5
    With TextBox1
        .Width = Application.Min(Array(60, ((Val(.Value) + 1) * 10))(Abs(Val(.Value) > LB And Val(.Value) < 100)), 100)
    End With
End Sub
question:
tu a abandonné la scrollbar ?
 

ChTi160

XLDnaute Barbatruc
Bonjour le Fil

ma proposition de ce que j'ai compris !
VB:
Private Sub UserForm_Initialize()
With Me
AncLargeur = .TextBox9.Width 'On récupére la Largeur a l'ouverture du Userform
                    .TextBox9.Tag = AncLargeur 'On la stock dans le tag du TextBox
                    'on pourrait faire plus cour Lol'
End With
End Sub
Private Sub TextBox9_Change()
Dim v As Double, NewWidth As Double
With Me.TextBox9
                AncLargeur = .Tag 'On récupére la largeur origine'
                 v = CLng(Val(.Value))'On récupére la Value entrée dans le TextBox'
    Select Case True 'on vérifie la valeur entrée
    Case v >= 5 And v <= 100 'si correspond'
              NewWidth = AncLargeur + v 'On ajoute a la valeur origine
    Case Else
              NewWidth = .Tag 'On récupére la valeur origine'
    End Select
           .Width = NewWidth 'on change la valeur de la largeur
End With
End Sub
ceux-ci est surement perfectible Lol
Jean marie
 

Discussions similaires

Réponses
4
Affichages
456
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…