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
 

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

Statistiques des forums

Discussions
312 210
Messages
2 086 281
Membres
103 170
dernier inscrit
HASSEN@45