Utilisation Unload à la place de Hide

Bonjour,

J'apprends doucement le VBA et je souhaiterais utiliser Unload à la place de Hide pour tout réinitialiser parce que actuellement, je fais :

XX.hide
YY = false
RR = false
AA = false

...

ainsi de suite.

En gros, sur une UF, j'ai une liste de boutons d'options, et en fonction de celle que je choisis, cela m'emmène sur une autre UF. L'information sélectionnée est stocké dans un tableau et ça passe à l'UF suivante. Mais à chaque fois, j'attribue la valeur False à toutes les options possibles pour que, si je reviens en arrière, l'information ne soit pas déjà sélectionnée.

Mais quand j'utilise unload, ma macro s'arrête quand j'ai cliqué sur l'option que j'ai choisi alors que je devrai arriver sur l'UF qui est dans la continuité.

Si je ne suis pas clair, dites le moi.

Merci d'avance

2 réponses

  1. Les boutons option sont par défaut à False.

    Je suppose que derrière chaque BtOption, tu ouvres un UF spécifique.

    Essaies ça:

    Private Sub cu_Click() 
         Unload Me 
         Q1.Show 
    End Sub

    1. Non, ça ne fonctionne pas. Mais je viens de voir qu'est join à la partie sur laquelle je travaille, un code de dingue, le début est ci dessous :

      Sub test2()
      Dim DerniereCelluleRemplie
      Dim t As String
      retour = 1
      DerniereCelluleRemplie = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row - 1
      t = Range("a65536").End(xlUp).Offset(-1, 0).Value
      Range("a65536").End(xlUp).Value = ""
      If t = "Qa" Then Qa.Show
      If t = "desserte" Then desserte.Show
      If t = "Q1" Then Q1.Show
      If t = "Q1b" Then Q1b.Show
      If t = "Q1d" Then Q1d.Show

      ..... ainsi de suite avec toutes les UF qui constituent le logiciel.

      (Je dois reprendre un logiciel qui a été développé par une autre personne. Débutant dans le VBA, j'analyse un peu tout histoire de me familiariser).
    2. Bon courage ^^
    3. Tu ne peux pas m'aider à décrypter ça ^^ ? enfin surtout

      DerniereCelluleRemplie = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row - 1
      t = Range("a65536").End(xlUp).Offset(-1, 0).Value
      Range("a65536").End(xlUp).Value = ""

      Le reste, je capte
    4. DerniereCelluleRemplie = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row - 1
      Retourne la dernière colonne de la 1ère ligne renseignée.

      t = Range("a65536").End(xlUp).Offset(-1, 0).Value
      Affecte à t la valeur de la cellule de la dernière ligne renseignée.

      Range("a65536").End(xlUp).Value = ""
      Affecte "" à la dernière cellule de la ligne renseignée.
    5. Bien, ça ne m'avance pas plus que ça ! :(

      Le End(xIUp).Offset(-1,0), what does it mean ?
  2. Bonjour,

    Il faudrait voir le code pour voir ce qui ne va pas.

    ;0)
    1. Je pense avoir trouvé...

      Je mets ça comme ça

      Unload UF1
      UF2.show


      Alors qu'en faite, je pense que c'est :

      UF2.show
      Unload UF1


      En gros, toujours ouvrir la suivante avant de faire disparaitre la précédente...
    2. Ben non, ça ne marche pas, enfin pas pour ce que je veux faire. Voici mon code :

      Private Sub cu_Click()
      Qa.Hide
      autres = False
      pbClient = False
      IntervFT = False
      pbDossier = False
      pbRoutage = False
      pbMat = False
      Q1.Show
      End Sub


      Sur cette UF, j'ai un ensemble de choix, là pour le coup j'ai saisi Cu du coup je passe tous les autres en False et je vais afficher l'UF Q1.

      Mais je pense qu'il y a une solution pour enlever tous ces falses en remplaçant par Unload mais je n'arrive pas à m'en servir...

      Du coup , j'ai essayé ça :

      Private Sub cu_Click()
      Q1.Show
      Unload Qa
      End Sub


      Mais ça ne marche pas
    3. Et que signifie :

      Sub test2()
      Dim DerniereCelluleRemplie
      Dim t As String
      retour = 1
      DerniereCelluleRemplie = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row - 1
      t = Range("a65536").End(xlUp).Offset(-1, 0).Value
      Range("a65536").End(xlUp).Value = ""