Donner la valeur zéro à plusieurs textbox

tomeeck -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je débute en vba,

je souhaiterai savoir si l'on peut donner la valeur zéro à plusieurs text box:

ci-dessous mon code qui ne fonctionne pas

dim i as integer
For i = 1 To 30
Textbox & i.Value = 0Next

merci pour votre aide
thomas

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    'controles feuille de calcul
    Private Sub CommandButton1_Click()
    Dim Obj As OLEObject
    'boucle sur la Feuil1
    For Each Obj In Sheets("Feuil1").OLEObjects
    'verifie s'il s'agit d'un Textbox
    If TypeOf Obj.Object Is MSForms.TextBox And (Obj.Name >= "TextBox1" And Obj.Name <= "TextBox30") Then
    Obj.Object.Value = 0
    End If
    Next Obj
    End Sub

    'controles dans UserForm
    Private Sub CommandButton1_Click()
    Dim Cont As Control
    'boucle sur de la Feuil1
    For Each Cont In Me.Controls
    If TypeOf Cont Is MSForms.TextBox And (Cont.Name >= "TextBox1" And Cont.Name <= "TextBox30") Then
    Cont.Object.Value = 0
    End If
    Next Cont
    End Sub

    'ou
    'controles dans UserForm
    Private Sub CommandButton3_Click()
    For i = 1 To 30
    Me("Textbox" & i).Value = 0
    Next i
    End If

    Bonne suite
    0
    1. tomeeck
       
      ca ne fonctionne pas quand je vais de 3 à 30 alors que ca fonctionne de 3 à 6?
      merci

      voici mon code :

      Private Sub ScrollBar1_change()

      Dim Obj As OLEObject

      Worksheets("Graphe").Cells(3, 7).Value = ScrollBar1.Value

      If ScrollBar1.Value = 0 Then

      'boucle sur la Feuille graphe
      For Each Obj In Sheets("graphe").OLEObjects
      'verifie s'il s'agit d'un Textbox
      If TypeOf Obj.Object Is MSForms.Textbox And (Obj.Name >= "TextBox3" And Obj.Name <= "TextBox30") Then
      Obj.Object.Value = 0
      End If
      Next Obj

      End If

      End Sub



      merci
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    enlevez le test:
    And (Obj.Name >= "TextBox3" And Obj.Name <= "TextBox30")

    ce test marche sur les Userforms mais pas sur les feuilles de calcul

    Bonne suite
    0
    1. tomeeck
       
      merci beaucoup pour vos conseils precieux

      j'ose vous poser une autre question.
      je cherche à vérifier que la valeur d'une textbox est inférieur à une certaine valeur de ma feuille de calcul mais cette condition n'est jamais vérifié.

      Avez vous une solton pour que cette condition soit vérifé
      ci-dessous mon code :

      Sub ScrollBar1_change()

      Worksheets("Feuil1").Cells(1, 1).Value = ScrollBar1.Value
      Worksheets("Feuil1").Cells(2, 1).Value = 10
      Worksheets("Feuil1").Cells(5, 1).Value = 512

      If ScrollBar1.Value = 0 Then
      TextBox1.Value = Worksheets("Feuil1").Cells(5, 1).Value

      ElseIf ScrollBar1.Value > 0 Then
      If TextBox1.Value < Worksheets("Feuil1").Cells(2, 1).Value Then
      TextBox1.Value = 0

      ElseIf TextBox1.Value >= Worksheets("Feuil1").Cells(2, 1).Value Then
      TextBox1.Value = Worksheets("Feuil1").Cells(5, 1).Value - Worksheets("Feuil1").Cells(2, 1).Value * ScrollBar1.Value

      End If

      End If
      End Sub


      la condition en fras n'est jamais vérifié??!!

      merci

      thomas
      0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,
    Comme le nom l'indique une TexteBox donne du texte. Si vous saisissez 1 cela donne une chaine de caractere "1" pas le chiffre 1. Donc il faut convertir la saisie en nombre par Cint(TextBox1.Value) pour -32 768 et 32 767 nombre entier
    ou CSng(TextBox1.Value) pour nombre decimal

    If Cint(TextBox1.Value) < Worksheets("Feuil1").Cells(2, 1) Then
    TextBox1.Value = 0
    ElseIf Cint(TextBox1.Value) >= Worksheets("Feuil1").Cells(2, 1) Then
    TextBox1.Value = Worksheets("Feuil1").Cells(5, 1).Value - Worksheets("Feuil1").Cells(2, 1).Value * ScrollBar1.Value

    End If

    Bonne suite
    0