Mes UserForms ne se ferme pa malgrè Unload Me

Résolu
Fab -  
xav3601 Messages postés 3390 Statut Membre -
Bonjour le forum,

Alors voilà j'ai trois petites questions qui reste sans réponce après 2 jours de recherches (enfin surtout pour la dernière^^).

- 1ère question: pourquoi malgrè la commande
UserForm2.Show
unload me
La UserForm1 reste "cachée" derrière la 2, en effet quand je déplace la 2 surprise la 1 est toujours derrière :( ?

-2ème question: pourquoi lorsque j'actives dans les propriétés d'une textbox Scrollbar celle ci n'apparait pas lors du lancement de la userform?

- et dernière question la plus dure lol comment faire pour mettre des conditions dans une combobox. Je m'expliques, j'ai deux combobox une qui propose une criticité (1,2,.. à 10) et l'autre un type d'action (réglementation, 1er odre, 2nd odre). Et j'aimerai pouvoir lorsque l'utilisateur choisi réglementation qu'il y a une restriction au niveau de la criticité et qu'il ne puisse selectionner qu'un chiffre supérieur à 7.

Merci d'avance à celui ou celle qui pourra m'aider

Fab
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  1. xav3601 Messages postés 3390 Statut Membre 312
     
    Alors pour repondre en vba il me semble que le me ne fonctione pas!
    alors il faut utiliser:
    unload userform1 -> vba
    ou
    me.close -> vb
    mais plus certainement la premiere

    ensuite pour ta 3eme question je te conseillerais une liste box et non combobox deja.

    pour la deux je sais pas je n'ai jamais utilisé scroll bar
    0
    1. Fab
       
      Bonjour xav3001,

      Oui donc escuser moi je suis en VBA ^^, j'ai essayé votre formule Unload UserFomX le seul problème c'est que la 1er userform est malgrè tout toujours présente en arrière plan quand je déplace la userform n°2.

      Pour la troisième question pourquoi le fait d'utiliser une listbox au lieu d'une combobox simplifira mon problème de restriction, y'a t'il une fonction faisant cela au sein d'une listBox??
      0
  2. othanga
     
    hello

    je suis pas tres basic donc je pourrais pas répondre aux deux premières questions.
    par contre, je pense que ta seconde combobox va devoir recalculer son contenu disponible à chaque changement de valeur de la première combobox.
    ie:
    lorsque cbo1.Text change
    => si valeur = 1 alors cbo2.liste = 'val1|val2|val3|val4'
    => si valeur = 2 alors cbo2.liste = 'val1|val2|val3|val4|val5'
    => si valeur = 1 alors cbo2.liste = 'val1|val2|val4'
    etc
    ou alors, le fin du fin, tu écris une nouvelle classe : la combo pilotée par une combo
    mais de toutes façons, tu mettras à l'intérieur du code du genre ci-dessus
    0
    1. othanga
       
      aaaaargh le copier/coller...
      le dernier 1 devait être 3

      la honte sur moi pour 107 ans :-(
      0
      1. xav3601 Messages postés 3390 Statut Membre 312 > othanga
         
        hehe!
        c'est mieu de faire ce genre de boulette sur un forum que dans un mail professionel :-)
        0
      2. Fab > othanga
         
        bonjour othanga,

        je vais essayer tout de suite le petit bout de code, et je vous remercie d'avance pour votre réponce rapide.
        0
  3. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    bonjour à tous

    quand tu mets USF2.show, le unload me s'effectuera après la fermeture de USF2
    maintenant ce que tu peux faire

    me.hide ' cache l'userform en cours
    Userform2.show
    Unload me
    0
    1. Fab
       
      Bonjour et merci à vous wilfried_42,

      car ma première question est résolvée plus que deux ^^
      0
  4. Fab
     
    pour ma 3ème question j'ai essayé se code mais il ne fonctionne pas :(

    If ComBoBox14.value= "1er ordre" Then
    Combobox14.value = combobox14.list(.listIndex "1,2,3,4"))
    End If
    0
    1. xav3601 Messages postés 3390 Statut Membre 312
       
      Je t'ai conseillé une listebox car avec une combobox peut ajouter une valeur dans la liste il me semble alors qu'avec la listbox, la liste reste figé!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    re:

    pour la 3eme, je n'ai pas toutes les cartes, (j'ai pas tout compris dans les details)
    peux tu poster ton fichier ?
    tu vas sur ce lien : https://www.cjoint.com/index.php
    tu charges ton fichier et tu crées le lien
    puis tu postes le lien ici

    @ te lire
    0
    1. Fab
       
      Alors ce serait avec grand plaisir mais j'ai un petit menu gros problème avec cijoint, je n'ai pas tout dit dans le forum mes je suis stagiaire dans une entreprise qui possède des par-feu et autre truc du genre et qui m'empêche d'aller sur des site donc cijoint qui lui ne fonctionne carrement pas.

      je vais donc expliquer le mieux possible ^^.
      j'ai une combobox qui contient les nombres de 1 à 10 qui représentent une échelle de criticité.
      une second combobox qui informe sur le domaine avec trois choix "réglementation","1er degré","2nd degré", hors il est impossible d'avoir une réglementation 6,5,4,3,2,1 elle est obligatoirement au dessus de 7 sur l'echelle de criticité.
      Ce que je souhaite c'est que quand un utilisateur choisi réglementation il ne puisse choisir un nombre inférieur à 7 dans la seconde combobox.

      Pour info mes Rowsources pour ces deux combobox sont situées sur une feuille excel.

      J'espère avoir été un minimum limpide ^^.

      Merci d'avance
      0
  7. Fab
     
    Dsl pour les nombreuses fautes d'orthographe je m'en suis rendu compte que maintenant c'est vraiment pas beau du tout dsl encore
    0
  8. xav3601 Messages postés 3390 Statut Membre 312
     
    Alors dans l'ordre:
    1-utiliser une listebox pour ne pas permettre a l'user de modifier la liste, puis utiliser ce code:
    initialisation:
    userformX.listbox1.liste = Array("1","2","3","4","5",.."10")

    dans le sub de combobox1

    lorsque cbo1.Text change
    => si valeur = 1 alors
    listbox1.clear
    listbox1.liste = array(...)

    voila j'espere avoir ete clair et efficace :)
    0
    1. Fab
       
      Donc si j'ai bien compris il faut que j'ai ce code là:

      Sub Userform Initialize()
      userformX.listbox1.List = Array("1","2","3","4","5",.."10")
      End Sub

      Sub ComboBox14 Change()
      If value = 1 Then
      listbox1.clear
      listbox1.list = array("7","8","9","10")
      End If

      J'ai essayé mais ça ne marche pas :(
      0
  9. xav3601 Messages postés 3390 Statut Membre 312
     
    Sub ComboBox14 Change()
    If value = 1 Then
    userform1.listbox1.clear
    userform1.listbox1.list = array("7","8","9","10")
    End If
    peut etre comme ca
    0
    1. Fab
       
      Bonjour xav301,

      hélas le code ne marche pas mais je vais comme même mettre résolu à la question car le titre étant "Mes UserForms ne se ferment pas malgrè Unload Me" et que ce problème est résolu ^^.

      Je travails encore sur le code mais si vous avez d'autre idées je suis preneurs mais je pense que je tiens le bon bout ^^.

      Bonne journée à vous
      0
  10. Fab
     
    Bonjour xav3601,

    J'ai essayé le code et il fonctionne même avec une combobox. le voilà:

    Private Sub UserForm_Initialize()
    Me.ComboBox3.List = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
    End Sub

    Private Sub ComboBox4_Change()
    If Me.ComboBox4.ListIndex = 1 Then
    ComboBox3.Clear
    ComboBox3.List = Array("7", "8", "9", "10")
    End If

    If Me.ComboBox4.ListIndex = 2 Then
    ComboBox3.Clear
    ComboBox3.List = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
    End If

    If Me.ComboBox4.ListIndex = 3 Then
    ComboBox3.Clear
    ComboBox3.List = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
    End If
    End Sub

    Le seul problème est que dnas la dernière partie c'est un peu brouillion mais je suis débutant alors ça me satisfait lol

    Merci à vous xav3601
    0
    1. xav3601 Messages postés 3390 Statut Membre 312
       
      oui oui ca fonctionne avec la combobox!
      mais je pense que avec une combobox tu as le choix de taper une valeur dans la combobox!
      donc l'utilisateur a quand meme le choix
      0