Variables dans Excel Macro pour formulaire

Résolu
excelman -  
Polux31 Messages postés 7219 Statut Membre -
Bonjour à toutes et à tous,

Je suis en train de réaliser un petit programme utilisant différentes variables (qui vont directement chercher leurs valeurs). Je les appelle par :

Dim nb (1 to 4) as long

nb1 = emplacement 1
nb2 = emplacement 2
nb3 = emplacement 3

ensuite => nb4 = nb1 + nb2 * nb3 (exemple de calcul)

Pas de soucis ... jusque la.

Je voulais ensuite faire un joli formulaire qui se remplit directement avec les résultats trouvés .... ainsi

TextBox3 = nb1
TextBox4 = nb2
TextBox5 = nb3
TextBox6 = nb4

Je voulais essayer de faire une boucle style mais elle beugue ... (les chiffres sont nuls dans la boucle alors qu'ils sont corrects dans le premier cas plus longs) ou est le probleme dans ma logique ...

For i = 1 To 4
Controls("TextBox" & i + 2).Value = Clng(nb (i))
Next i

Par avance merci ami(e) informaticien(ne) ou passionné(e) d'Excel comme moi ....

1 réponse

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Voilà un exemple a adapter :
    Private Sub CommandButton1_Click()
    Dim Ctrl As Variant
    Dim j As Integer
    Dim TabNb(4) As Long
    
        TabNb(1) = emplacement_1 
        TabNb(2) = emplacement_2 
        TabNb(3) = emplacement_3 
        TabNb(4) = TabNb(1) + TabNb(2) * TabNb(3)
        
        j = 1
        For Each Ctrl In Array(TextBox3, TextBox4, TextBox5, TextBox6)
            Ctrl.Object.Value = TabNb(j)
            j = j + 1
        Next
    End Sub


    ;o)
    1
    1. excelman
       
      Merci Polux de ta réponse ... ;-)

      Elle fonctionne c'est sur mais je cherchais quelque chose de plus simple.

      Le problème concerne la fonction ARRAY ... qui revient à ressaisir les numéros des Textbox (comme dans mon cas précédent). Je pensais qu'il était plus simple de les rappeler en automatique sans saisir tous les numéros.

      Merci de votre aide ...
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Salut,

      Tu peux déclarer un tableau qui s'initialise en ouvrant le formulaire, mais quoiqu'il en soit, il te faudra saisir les éléments qui initialiseront le tableau. Comme ça par exemple :

      Option Explicit
      
      Private TabTextBox(1 To 4) As msforms.TextBox
      
      Private Sub UserForm_Initialize()
          Set TabTextBox(1) = UserForm1.TextBox3
          Set TabTextBox(2) = UserForm1.TextBox4
          Set TabTextBox(3) = UserForm1.TextBox5
          Set TabTextBox(4) = UserForm1.TextBox6
      End Sub
      
      Private Sub CommandButton1_Click()
      Dim Ctrl As Variant
      Dim j As Integer
      Dim TabNb(4) As Long
      
          TabNb(1) = emplacement_1 
          TabNb(2) = emplacement_2 
          TabNb(3) = emplacement_3 
          TabNb(4) = TabNb(1) + TabNb(2) * TabNb(3)
          
          j = 1
          For Each Ctrl In TabTextBox()
              Ctrl.Object.Value = TabNb(j)
              j = j + 1
          Next
      End Sub
      0
    3. exelman
       
      Bonjour Polux,

      Y a rien a dire tu es trop fort ! Je pensais faire une boucle comme celle que tu viens de me donner dans la deuxième réponse mais il me manquait ton petit grain d'épice qui donne tout l'arôme au plat et qui lui permet d'être bon.

      A mon niveau, il restait fade et il bogué mais avec toi ... merveilleux, ça marche et il est très bon !

      Je te remercie très sincèrement de tes réponses (même si je préfère la seconde ... je ne suis pas assez costaud pour l'avoir conçu moi même ... bravo ! )

      A plus et MERCI Polux
      0
    4. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Salut,

      De rien, mais je n'ai rien inventé...

      Bonne continuation.
      0