[VBA] Utiliser la valeur d'une cellule pour cacher 1 Frame

Résolu
thesentry Messages postés 1092 Statut Membre -  
thesentry Messages postés 1092 Statut Membre -
Bonjour,

Voilà,

J'ai 2 UF : UF1 et UF2.

Je suis sur l'UF1, lorsque je passe à l'UF2, le nom de l'UF1 se stock dans une cellule.
Une fois sur l'UF2, j'aimerai que lorsque je clique sur Valider, il me fasse disparaître un frame présent sur l'UF1.

Pour se faire, je voudrais utiliser le nom de l'UF1 que j'ai stocké. J'avais eu comme idée de déclarer X as Variant, de donner la valeur de la cellule à X et d'écrire

X.Frame1.Visible = False

J'ai aussi essayé ça :

Sheets("Feuil1").Range("A20").Value.Frame1.Visible = False

Mais bien sûr, ça ne fonctionne pas.

Une idée svp ?

PS : pourquoi ne pas tout simplement écrire MonUf.Frame.Visible = False... tout simplement car je n'ai pas que 2 UF, j'en ai plein donc il faut que ce soit générique, d'où le stockage du nom de l'UF.

En gros, je veux pouvoir réutiliser le nom de l'UF que j'ai "stocké".

Si ce n'est pas assez clair, dites le moi.

Merci

6 réponses

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

    Je suis sur l'UF1, lorsque je passe à l'UF2 ...

    L'UF1 reste active ou bien déchargée par un Unload ?

    0
    1. thesentry Messages postés 1092 Statut Membre 16
       
      Bonjour Polux31,

      Il n'est ni déchargé ni caché.
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      La meilleur solution reste MonUf.Frame.Visible = False.
      Stoker le nom de l'UF ne sert à rien. Ce genre de comportement d'un objet ne peut pas être générique.
      0
    3. thesentry Messages postés 1092 Statut Membre 16
       
      Oui mais ça ne sera pas optimisé...mais bon si là est la seule solution, j'vais faire ainsi.
      0
    4. thesentry Messages postés 1092 Statut Membre 16
       
      Ou bien, stocker le nom de mon UF dans une cellule et écrire à chaque fois

      If Sheets("Feuil1").Range(A1).Value = MonUF.Name Then
      MonUf.Frame1.Visible = False
      End If

      Et faire ça avec tous les UF que j'ai...
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour a vous deux,

    c'est faisable sans probleme: variable public object

    https://www.cjoint.com/?DABl007SPvE

    thesentry:
    mais comment allez vous gerer les actions en fonction de l'UF a piloter ????
    0
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Bonjour f894009,

      Je n'ai pas dit que c'était impossible ^^
      J'ai eu la même réflexion concernant la gestion des UF ... d'où "La meilleur solution reste MonUf.Frame.Visible = False".
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Ok, nous somme d'accord, va pas etre simple a gerer
      0
    3. thesentry Messages postés 1092 Statut Membre 16
       
      Bonjour,

      Votre code semble se rapprocher de ce dont j'ai besoin.

      Cependant, pas sûr que ça marche dans le cas où j'ai plusieurs UF (cf mon indication dans le message suivant).
      0
  3. thesentry Messages postés 1092 Statut Membre 16
     
    Je vais détailler un petit peu plus ce que j'ai :

    J'ai 10 UF "normaux".

    J'ai 4 UF "pop-up".

    Les 4 UF "pop-up" sont présent pour chaque UF "normal" (un même UF "pop-up" est rattaché à 10 Uf "normaux").

    Si j'ouvre l'UF "normal" 5, et que je clique sur la première option, je vais avoir l'UF "pop-up" 1 qui va s'ouvrir. Lorsque sur cet UF "pop-up" je vais cliquer sur Valider, le Frame1 de l'UF "normal" 5 contenant la première option devra disparaître.
    0
  4. Polux31 Messages postés 7219 Statut Membre 1 204
     
    4 pop-up par UF ... ce n'est peut être pas la peine de monter une usine à gaz pour s'éviter quelques lignes de codes ...
    0
    1. thesentry Messages postés 1092 Statut Membre 16
       
      Non, je me suis peut être mal exprimé :

      Ces 4 pop-up sont pour les 10 UF normaux. Donc en tout et pour tout, j'ai 14 UF.
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Ça j'ai compris !!!

      4 UF "pop-up" sont présents pour chaque UF "normal"
      1 UF normal -> 4 pop-up ...

      Et 1 pop-up -> 10 UF.

      La proposition de F894009 dans son exemple peut être appliquée avec une variable globale public object. Il faudra instancier l'objet dans la méthode d'appel du pop-up.
      0
    3. thesentry Messages postés 1092 Statut Membre 16
       
      Ta participation est la bienvenue et agréable. Mais reste calme hein ;-)

      En d'autres termes, ça donne quoi le "une variable globale public object. Il faudra instancier l'objet dans la méthode d'appel du pop-up."?
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Juste de passage. Regardez l'exemple que j'ai mis Lien (#4)
      0
    5. thesentry Messages postés 1092 Statut Membre 16
       
      Re,

      Je vous ai répondu tout à l'heure... je vois à peu prêt le fonctionnement.
      Mais est-ce applicable pour 10 UF ?

      Le fait de mettre USF = Me retient seulement l'UF actif ? (je débute, je m'exprime peut être mal...)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. thesentry Messages postés 1092 Statut Membre 16
     
    Re,

    J'ai essayé de l'incorporer dans mon programme mais ça ne fonctionne pas.

    J'ai déclaré sur l'UF le
    Set USF = Me
    , je l'ai mis dans Private Sub UserForm_Initialize et dans un de mes pop up (pour le test), j'ai mis

    USF.Frame1.Visible = False
    USF.CommandButton4.Visible = True


    Mais ça ne fonctionne pas, au débogage, il me dit qu'un objet est requis. Mais dans l'idée, c'est comme le code de f894009...
    0
  7. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bjr,

    Private Sub OptionButton1_Click()
        Set USF = Me
        KOREP.Show
    End Sub 


    Y-a-t'il un CommandButton4 sur l'UF ?
    0
    1. thesentry Messages postés 1092 Statut Membre 16
       
      Oui il a bien un CommandButton4.

      Mon Frame1 présente le parcours, une fois que l'utilisateur a cliqué sur l'étape qu'il veut, le pop-up approprié s'ouvre. Lorsqu'on clique sur "Valider" dans le pop up, il se ferme, le frame1 de l'UF disparaît et un bouton apparaît pour ré-afficher si besoin le frame1 pour une modification.

      J'ai tout le temps :

      Erreur d'exécution '424' :
      Objet requis
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Facile!!!!!!
      0
    3. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Quoi donc ?
      0
    4. thesentry Messages postés 1092 Statut Membre 16
       
      Ah oui ça semble pas mal Polux31.

      Question, à quoi sert le "option Explicit" ?
      0