Executer un sub depuis un sub différent

Résolu
Peluchpika Messages postés 7 Statut Membre -  
Peluchpika Messages postés 7 Statut Membre -
Bonjour, Je vais essayer d'être clair mais ce ne sera pas évident.

Je cherche à exécuter un private sub (un optionbutton sur mon userforrm)
uniquement si l'utilisateur appuie sur un bouton de commande

Plus concrètement, si l'utilisateur appuie sur "OUI" et selectionne "2feuilles" mon programme deverouille 2 textbox (le nom de chaque feuille). S'il appuie sur "NON", cela verouille toutes les textbox.

Mon but est de faire en sorte que si l'utilisateur selectionne "2feuilles" (optionbutton) puis "NON" (donc les cellules se verouillent) puis "OUI", à ce moment les textbox 1 et 2 doivent se déverouiller sans avoir besoin de retoucher aux optionbuttons.

resumé :

Conditions initiales : toutes les textbox sont verouillées

"OUI" -> "x feuilles" -> x textbox déverouillées -> "NON" -> toutes les texbox verouillées -> "OUI" -> x textbox déverouillées

(je pense que c'est faisable avec mes connaissances actuelles mais cela nécessiterait d'écrire encore un tas de lignes de code, et j'aimerais éviter de trop alourdir le code déjà bien long.)

Si une fonction permettait d'exécuter un private sub directement et combiné à une condition, cela ferait mon bonheur. *-*

Sur ce, bonne soirée, et merci d'avance de votre aide !

5 réponses

  1. Iama Messages postés 324 Statut Membre 14
     
    Bonjour Peluchpika

    Comme tu le signale, c'est pas très claire.

    Je vais répondre en fonction de ce que j'ai compris.

    sub XXXXX ()
    
    if --- then
      Call sousSub
    else
    '-
    end if
    
    end sub
    
    sub sousSub()
    '+
    '+
    end sub


    Est-ce que cela répond un peu à ta recherche?

    cordialement
    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    difficile à comprendre comme tous les intervenants ci dessus
    le mieux serait de joindre ton classeur

    pour joindre une pièce
    mettre le classeur sans données confidentielles en pièce jointe sur
    https://www.cjoint.com/
    puis copier l'adresse du lien et la coller dans le message de réponse

    Michel
    0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. Peluchpika Messages postés 7 Statut Membre
     
    Bon en fait quand j'ai posté ce message j'étais tellement en galère que je savais qu'a moitié ce que je comptais faire.

    Je vais préciser ce que je cherchais :

    "Executer un private sub depuis un autre, si une condition est validée."

    >Benol3 : Super ! c'est exactement ce que je cherchais, le premier exemple montre parfaitement comment apeller un sub. Merci =)

    >Iama : Comme pour Benol3 c'est tout à fait ça, la commande "Call" n'est (dans mon cas) apparement pas indispensable, mais je préfère l'utiliser, au moins pour que si quelqun relise mon prog il comprenne plus facilement.

    >Cs_Le Pivert : Apparement la solution n'est pas présenté dans ce tuto, mais je garde quand même sous la main pour vérifier la synthaxe de mon code.

    >Michel_m : Bah plus besoin (en plus c'est pas un classeur c'est sur Word, et c'est confidentiel (bien que pas pour moi, mais à partir du moment ou c'est professionnel) Mais je peux quand même donner la solution que j'ai appliquée :

    Private Sub OUI_Click()
    
    'blabla les autres choses qui se passent quand on clique'
    
    If OptionButton1.Value = True Then
            Call OptionButton1_Click
            
        ElseIf OptionButton2.Value = True Then
            Call OptionButton2_Click
            
        ElseIf OptionButton3.Value = True Then
            Call OptionButton3_Click
            
        ElseIf OptionButton4.Value = True Then
            Call OptionButton4_Click
        Else
        
        End If
    
    End Sub
    0
    1. Peluchpika Messages postés 7 Statut Membre
       
      Awi au cas ou, je précise que le "_Click " est indispensable dans ce code, sinon, VB renvoie une erreur de compilation.
      0