Utilisation Unload à la place de Hide

thesentry Messages postés 1092 Statut Membre -  
thesentry Messages postés 1092 Statut Membre -
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. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    1. thesentry Messages postés 1092 Statut Membre 16
       
      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).
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Bon courage ^^
      0
    3. thesentry Messages postés 1092 Statut Membre 16
       
      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
      0
    4. Polux31 Messages postés 7219 Statut Membre 1 204
       
      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.
      0
    5. thesentry Messages postés 1092 Statut Membre 16
       
      Bien, ça ne m'avance pas plus que ça ! :(

      Le End(xIUp).Offset(-1,0), what does it mean ?
      0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

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

    ;0)
    0
    1. thesentry Messages postés 1092 Statut Membre 16
       
      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...
      0
    2. thesentry Messages postés 1092 Statut Membre 16
       
      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
      0
    3. thesentry Messages postés 1092 Statut Membre 16
       
      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 = ""
      0