Manipuler la fonction "For Next" en Vba

Résolu
Toums91 -  
 Toums91 -
Bonjour à tous,

J'ai rédigé le code suivant
For v = 108 To 111
Textbox = Textbox & (v)
Textbox.Visible = False
Next v
, lequel produit une erreur d'éxécution "objet requis"
La mise en oeuvre de boucle est assez nouvelle pour moi, c'est pourquoi je fais appel à vous.

En effet le code ancienne formule suivant:
'TextBox108.Visible = False
'TextBox109.Visible = False
'TextBox110.Visible = False
'TextBox111.Visible = False
était un peu trop lourd dès lors que le formulaire détient plus de 100 textbox.

Merci par avance.
Cdlt.

7 réponses

  1. moiced59 Messages postés 1161 Statut Membre 60
     
    Peut etre une fonction un peu lourde a ecrire mais une fois ecrite tu est tranquil

    Sub test()
    Dim v As Integer
    For v = 1 To 2
    visibilite (v)
    Next v

    End Sub

    Function visibilite(i As Integer)
    Select Case i
    Case 1
    Me.TextBox1.visible = False
    Case 2
    Me.TextBox2.visible = False
    'case .... ainsi de suite
    End Select
    End Function
    1
  2. Toums91
     
    Re,

    Pourriez-vous rechercher à partir d'une fonction For next une proposition de code très court afin d'éviter un code très lourd.

    Merci.

    Mathieu
    0
  3. moiced59 Messages postés 1161 Statut Membre 60
     
    Bonjour

    ola pas facile tt ca je ne suis pas sur que cela soit possible
    0
    1. Toums91
       
      Et si tu observes le 1er commentaire?
      0
  4. moiced59 Messages postés 1161 Statut Membre 60
     
    Et si tu as une centaine de text box sert toi de ce code pr les ecrire

    Sub ecrire()
    For i = 1 To 100
    Debug.Print "textbox" & i & ".visible = False"
    Next
    End Sub
    0
    1. moiced59 Messages postés 1161 Statut Membre 60
       
      Petite modif :

      Sub ecrire()
      For i = 1 To 100
      Debug.Print "case " & i
      Debug.Print "textbox" & i & ".visible = False"
      Next
      End Sub
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. moiced59 Messages postés 1161 Statut Membre 60
     
    ce qui donne :

    case 1
    textbox1.visible = False
    case 2
    textbox2.visible = False
    case 3
    textbox3.visible = False
    case 4
    textbox4.visible = False
    case 5
    textbox5.visible = False
    case 6
    textbox6.visible = False
    case 7
    textbox7.visible = False
    case 8
    textbox8.visible = False
    case 9
    textbox9.visible = False
    case 10
    textbox10.visible = False
    case 11
    textbox11.visible = False
    case 12
    textbox12.visible = False
    case 13
    textbox13.visible = False
    case 14
    textbox14.visible = False
    case 15
    textbox15.visible = False
    case 16
    textbox16.visible = False
    case 17
    textbox17.visible = False
    case 18
    textbox18.visible = False
    case 19
    textbox19.visible = False
    case 20
    textbox20.visible = False
    case 21
    textbox21.visible = False
    case 22
    textbox22.visible = False
    case 23
    textbox23.visible = False
    case 24
    textbox24.visible = False
    case 25
    textbox25.visible = False
    case 26
    textbox26.visible = False
    case 27
    textbox27.visible = False
    case 28
    textbox28.visible = False
    case 29
    textbox29.visible = False
    case 30
    textbox30.visible = False
    case 31
    textbox31.visible = False
    case 32
    textbox32.visible = False
    case 33
    textbox33.visible = False
    case 34
    textbox34.visible = False
    case 35
    textbox35.visible = False
    case 36
    textbox36.visible = False
    case 37
    textbox37.visible = False
    case 38
    textbox38.visible = False
    case 39
    textbox39.visible = False
    case 40
    textbox40.visible = False
    case 41
    textbox41.visible = False
    case 42
    textbox42.visible = False
    case 43
    textbox43.visible = False
    case 44
    textbox44.visible = False
    case 45
    textbox45.visible = False
    case 46
    textbox46.visible = False
    case 47
    textbox47.visible = False
    case 48
    textbox48.visible = False
    case 49
    textbox49.visible = False
    case 50
    textbox50.visible = False
    case 51
    textbox51.visible = False
    case 52
    textbox52.visible = False
    case 53
    textbox53.visible = False
    case 54
    textbox54.visible = False
    case 55
    textbox55.visible = False
    case 56
    textbox56.visible = False
    case 57
    textbox57.visible = False
    case 58
    textbox58.visible = False
    case 59
    textbox59.visible = False
    case 60
    textbox60.visible = False
    case 61
    textbox61.visible = False
    case 62
    textbox62.visible = False
    case 63
    textbox63.visible = False
    case 64
    textbox64.visible = False
    case 65
    textbox65.visible = False
    case 66
    textbox66.visible = False
    case 67
    textbox67.visible = False
    case 68
    textbox68.visible = False
    case 69
    textbox69.visible = False
    case 70
    textbox70.visible = False
    case 71
    textbox71.visible = False
    case 72
    textbox72.visible = False
    case 73
    textbox73.visible = False
    case 74
    textbox74.visible = False
    case 75
    textbox75.visible = False
    case 76
    textbox76.visible = False
    case 77
    textbox77.visible = False
    case 78
    textbox78.visible = False
    case 79
    textbox79.visible = False
    case 80
    textbox80.visible = False
    case 81
    textbox81.visible = False
    case 82
    textbox82.visible = False
    case 83
    textbox83.visible = False
    case 84
    textbox84.visible = False
    case 85
    textbox85.visible = False
    case 86
    textbox86.visible = False
    case 87
    textbox87.visible = False
    case 88
    textbox88.visible = False
    case 89
    textbox89.visible = False
    case 90
    textbox90.visible = False
    case 91
    textbox91.visible = False
    case 92
    textbox92.visible = False
    case 93
    textbox93.visible = False
    case 94
    textbox94.visible = False
    case 95
    textbox95.visible = False
    case 96
    textbox96.visible = False
    case 97
    textbox97.visible = False
    case 98
    textbox98.visible = False
    case 99
    textbox99.visible = False
    case 100
    textbox100.visible = False
    0
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    essaie qcq chose comme ça (j'ai la flemme de créer un fichier pour tester) :
    For v = 108 To 111
    Controls("Textbox" & i).Visible = False
    Next v

    eric

    PS: la prochaine fois dépose un fichier exemple sur cijoint.fr et colle ici le lien fourni.
    Ca motive plus de réponses... ;-)
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut Eriiic!
      Comment va?
      Juste une tite modif de ton code, que visiblement tu n'as pas testé ;-)) :
      For v = 108 To 111   
      Controls("Textbox" & v).Visible = False   
      Next v 

      Si ça ne fonctionne pas, précisez le "conteneur" :
      WorkSheets("Feuil1").Controls("Textbox" & v).Visible = False
      ou
      UserForm1.Controls("Textbox" & v).Visible = False
      Etc...

      Et un petit hors sujet au passage : As tu des news de Lermitte222?
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour pijaku,

      Merci pour le complément ;-)
      Non, c'est vrai que ça fait un petit moment que je ne l'ai vu...
      En vacances peut-être ?

      A+
      eric
      0
    3. Toums91
       
      Merci pour ta réponse, elle fonctionne parfaitement.
      Je prends note pour le fichier à joindre néanmoins ce sont des fichiers pro, pas évident...

      Peut on adapter cette fonction à non pas une textbox mais à une variable qui est déclaré dans le code.
      Il s'agit d'affecter à 15 variables "TRANSPORT_CLASS2_BRESIL_T(1)",TRANSPORT_CLASS2_BRESIL_T(2)",etc... 15 résultats identiques
      Je pense tout de suite à reproduire ton code, néanmoins l'outil control ne peut pas être utilisé pour cet exemple :
      For i =1 to 15
      TRANSPORT_CLASS2_BRESIL_T() & i.value = 12
      next i

      Bien sûr, ça ne fonctionne pas.

      Merci et bon courage.

      Mathieu
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Quel est l'intérêt d'avoir 15 variables pour une seule valeur?
      Faut m'esspliquer là...
      0
    5. Toums91
       
      Message rectifié faute de frappe!
      0
  8. Toums91
     
    bonjour à tous,

    je tenais à vous remercier pour vos efforts ! cela procure une joie immense d'avancer dans sa programmation.

    Bonne journée.

    Mathieu
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut,
      C'est résolu??
      0
    2. Toums91
       
      Grand merci!! Tu m'as bien aidé!!!
      Allez je continue à avancer!
      0