Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1522 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Faire apparaitre les valeurs de la liste d'un combo/text box directeme

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire apparaitre les valeurs de la liste d'un combo/text box directeme

n°2245598
yanounou91
Posté le 10-12-2014 à 12:01:50  profilanswer
 

Bonjour,

 

Je m'explique. j'ai réalisé un formulaire en m'aidant couplant petites connaissances et aide code trouvés sur le forum.

 

Le but est que pour certains éléments du formulaire, une liste deroulante propose des valeurs à l'utilisateur.

 

Cela fonctionne mais le probleme est que lorsque le formulaire est actif, les listes de valeurs n'apparaissent que l'ors d'un clic sur le fond du formulaire. Meme probleme pour la copie des valeurs sélectionnées vers l'onglet "Données". je crains que l'utilisateurs pense que le formulaire ne fonctionne pas et de ne pas avoir les résultats en "Données".

 

Comment faire pour qu'une fois le formulaire ouvert, les valeurs du menu déroulant s'affiche directement quand l'utilisateur clique sur la zone de liste modifiable et que les données en "Données" se copie conformément au code saisie ? (sans avoir à cliquer dans l'espace vide du formulaire). lien :
En vous remerciant et m'excusant pour certains termes peut etre mal choisis dans ma question.

 

Yannick

 

PS : Le lien du fichier joint est un XSLM et devrait permettre de mieux comprendre le probleme
Voici le code :

 
Code :
  1. Option Explicit
  2. Dim Ws As Worksheet
  3. 'pour enlever la croix rouge d'un UF
  4. #If Win64 Then
  5.     Private Declare PtrSafe Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  6.     Private Declare PtrSafe Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  7.     Private Declare PtrSafe Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  8. #Else
  9.     Private Declare Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  10.     Private Declare Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  11.     Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  12. Private Sub TextBox1_Change()
  13. End Sub
  14. #End If
  15. Private Sub UserForm_Initialize()
  16. Dim hWnd As Long
  17.     hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D" ) _
  18.     & "Frame", Me.Caption)
  19.     SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
  20. End Sub
  21. 'Fermeture, validation du questionnaire
  22. Private Sub CommandButton1_Click()
  23. Unload UserForm1
  24. End Sub
  25. Private Sub UserForm_Click()
  26. ComboBox19.ColumnCount = 1 'Pour la liste déroulante Entité
  27. ComboBox19.List() = Array("RH", "DAF", "MP", "COMPTA", "TECHNIQUE", "DIV", "Etablissement" )
  28. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  29. ComboBox5.ColumnCount = 1 'Pour la liste déroulante Entité
  30. ComboBox5.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  31. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  32. ComboBox6.ColumnCount = 1 'Pour la liste déroulante Entité
  33. ComboBox6.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  34. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  35. ComboBox7.ColumnCount = 1 'Pour la liste déroulante Entité
  36. ComboBox7.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  37. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  38. ComboBox8.ColumnCount = 1 'Pour la liste déroulante Entité
  39. ComboBox8.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  40. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  41. ComboBox13.ColumnCount = 1 'Pour la liste déroulante Entité
  42. ComboBox13.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  43. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  44. ComboBox14.ColumnCount = 1 'Pour la liste déroulante Entité
  45. ComboBox14.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  46. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  47. ComboBox15.ColumnCount = 1 'Pour la liste déroulante Entité
  48. ComboBox15.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  49. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  50. ComboBox15.ColumnCount = 1 'Pour la liste déroulante Entité
  51. ComboBox15.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  52. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  53. ComboBox16.ColumnCount = 1 'Pour la liste déroulante Entité
  54. ComboBox16.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  55. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  56. ComboBox17.ColumnCount = 1 'Pour la liste déroulante Entité
  57. ComboBox17.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  58. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  59. ComboBox18.ColumnCount = 1 'Pour la liste déroulante Entité
  60. ComboBox18.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  61. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  62. ComboBox9.ColumnCount = 1 'Pour la liste déroulante Entité
  63. ComboBox9.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  64. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  65. ComboBox10.ColumnCount = 1 'Pour la liste déroulante Entité
  66. ComboBox10.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  67. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  68. ComboBox11.ColumnCount = 1 'Pour la liste déroulante Entité
  69. ComboBox11.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  70. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  71. ComboBox12.ColumnCount = 1 'Pour la liste déroulante Entité
  72. ComboBox12.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" )
  73. Set Ws = Sheets("Données" ) 'Correspond au nom de votre onglet dans le fichier Excel
  74. 'Ecrire les réponses dans l'onglet données
  75. Sheets("Données" ).Range(Cells(2, 1), Cells(18, 1)) = ComboBox19.Value
  76. Sheets("Données" ).Range(Cells(2, 2), Cells(18, 2)) = TextBox1.Value
  77. Sheets("Données" ).Range(Cells(2, 3), Cells(18, 3)) = TextBox3.Value
  78. Sheets("Données" ).Range(Cells(2, 4), Cells(18, 4)) = TextBox2.Value
  79. Sheets("Données" ).Cells(2, 8) = ComboBox5.Value
  80. Sheets("Données" ).Cells(3, 8) = ComboBox6.Value
  81. Sheets("Données" ).Cells(4, 8) = ComboBox7.Value
  82. Sheets("Données" ).Cells(5, 8) = ComboBox8.Value
  83. Sheets("Données" ).Cells(6, 8) = ComboBox13.Value
  84. Sheets("Données" ).Cells(7, 8) = ComboBox14.Value
  85. Sheets("Données" ).Cells(8, 8) = ComboBox15.Value
  86. Sheets("Données" ).Cells(9, 8) = ComboBox16.Value
  87. Sheets("Données" ).Cells(10, 8) = ComboBox17.Value
  88. Sheets("Données" ).Cells(11, 8) = ComboBox18.Value
  89. Sheets("Données" ).Cells(12, 8) = ComboBox9.Value
  90. Sheets("Données" ).Cells(13, 8) = ComboBox10.Value
  91. Sheets("Données" ).Cells(14, 8) = ComboBox11.Value
  92. Sheets("Données" ).Cells(15, 8) = ComboBox12.Value
  93. Sheets("Données" ).Cells(16, 8) = TextBox4.Value
  94. Sheets("Données" ).Cells(17, 8) = TextBox5.Value
  95. Sheets("Données" ).Cells(18, 8) = TextBox6.Value
  96. End Sub
  97. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  98. Dim Ctrl As Control
  99.     'parcourt les contrôles du formulaire
  100.     For Each Ctrl In Me.Controls
  101.      
  102.         If TypeName(Ctrl) = "TextBox" Then
  103.             If Ctrl.Text = "" Then
  104.                 MsgBox "Veuillez renseigner tous les champs SVP"
  105.                 Cancel = True
  106.                 Exit Sub
  107.             End If
  108.         End If
  109.    Next Ctrl
  110.     End Sub
  111.    
  112.     Private Sub UserForm_QueryClose2(Cancel As Integer, CloseMode As Integer)
  113.     End Sub
  114. Dim Ctrl As Control
  115.     'parcour les contrôles du formulaire
  116.     For Each Ctrl In Me.Controls
  117.      
  118.         If TypeName(Ctrl) = "ComboBox" Then
  119.             If Ctrl.Text = "" Then
  120.                 MsgBox "Veuillez renseigner tous les champs SVP"
  121.                 Cancel = True
  122.                
  123.                 Exit Sub
  124.             End If
  125.        
  126.         End If
  127.    
  128.     Next Ctrl
  129.    
  130.     End Sub

   

 


Merci à vous


Message édité par yanounou91 le 14-12-2014 à 21:21:19
mood
Publicité
Posté le 10-12-2014 à 12:01:50  profilanswer
 

n°2245625
Marc L
Posté le 10-12-2014 à 15:55:49  profilanswer
 

 
           Bonjour,
 
           question posée dans combien de forums ?‼
 
           Commencer par lire les règles du forum puis éditer le post pour baliser le code via l'icône dédiée …
 

n°2245628
yanounou91
Posté le 10-12-2014 à 16:37:32  profilanswer
 

Désolé je ne me rappelais plus de cela. je cherchais à joindre le code par fichier alors qu'il fallait le "baliser".
 
Est ce plus acceptable du coup ?
 
Merci pour votre réponse

n°2245666
Marc L
Posté le 10-12-2014 à 21:35:41  profilanswer
 


            C'est clair que dans le code il est clairement demandé de mettre à jour le ComboBox lors du Click sur l'Userform !
 
            A déplacer donc dans son initialisation …
 

n°2245689
yanounou91
Posté le 11-12-2014 à 02:38:32  profilanswer
 

Bonsoir Marc L,
 
Tout d'abord, merci d'avoir répondu à mon probleme.
Ensuite, pourriez vous me dire dans quelle partie du code se trouvent les termes qui indiquent la mise à jour au moment du clic ?
 
Et que veut dire "déplacer donc dans son initialisation".
 
En vous remerciant.

n°2245706
Marc L
Posté le 11-12-2014 à 09:50:19  profilanswer
 

 
           Rien qu'en lisant le code  :ouch:  il y a bien une procédure Click et une procédure Initialize liées à l'Userform, non ?‼
 

n°2245713
yanounou91
Posté le 11-12-2014 à 10:08:44  profilanswer
 

Marc L,
 
J'ai changé dans le code le code (ligne 36) "Private Sub UserForm_Click()"
 
par le code : "Private Sub UserForm_Activate()".
 
Du coup, j'ai bien les valeurs des menus deroulants qui apparaissent dès l'ouverture du formulaire. En revanche, les valeurs ne se copient plus dans l'onglet "Données" comme auparavant.
 
Avez vous une piste sur la raison ?
 
merci à vous.
 
 
yannick
 

n°2245715
yanounou91
Posté le 11-12-2014 à 10:13:17  profilanswer
 

En essayant le mot "Initialize" à la place de "Activate", il n'y a plus de valeurs dans le menu déroulant et on ne peut saisir le formulaire ^^.
 

n°2245745
Marc L
Posté le 11-12-2014 à 13:02:39  profilanswer
 

 
           En fait comme le code est mal écrit (lignes inutiles et d'autres incomplètes au niveau du rattachement des cellules par exemple),
           tel quel, la feuille de calculs "Données" devrait être celle active pour que cela fonctionne.
 
           Exemple :                      Sheets("Données" ).Range(Cells(2, 1), Cells(18, 1)) = ComboBox19.Value
 
           Les cellules ont l'air d'être rattachées à la feuille mais en fait non car comme rien n'est précisé devant, c'est donc la feuille active !
 
           Exemple de correction :  With Sheets("Données" ):  .Range(.Cells(2, 1), .Cells(18, 1)).Value = ComboBox19.Value:  End With
 

n°2245751
yanounou91
Posté le 11-12-2014 à 14:55:52  profilanswer
 

J'avoue que j'ai pas assuré. car je savais qu'il fallait etre dans une feuille pour faire une opération dedans, d'où le "With sheets".
 
En revanche, en utilisant le code :
 
With Sheets("Données" ):  .Range(.Cells(2, 1), .Cells(18, 1)).Value = ComboBox19.Value:  End With  
 
Il ne se passe toujours rien dans la plage en question. La macro n'a pas l'air de vouloir ecrire la valeur dans la feuille.  
 
Bizarrement, quand j'etais en mode "36.Private Sub UserForm_Click()" les valeurs s'affichaient dans la feuille, mais j'avais pas les menus deroulants à l'ouverture sans clic ...
 
Dois je adapter quelquechose pour qu'il veuille bien m'afficher les valeurs ? (bien entendu je cherche dans le meme temps, meme si vous m'apporter votre aide).
 
Merci encore
 

mood
Publicité
Posté le 11-12-2014 à 14:55:52  profilanswer
 

n°2245791
Marc L
Posté le 11-12-2014 à 18:40:55  profilanswer
 

 
           Je ne vois pas car cela m'est déjà arrivé de basculer du code d'un Click à un Initialize sans souci.
 
           Espérons sur l'autre forum avec la pièce jointe un intervenant puisse trouver …
  

n°2245821
yanounou91
Posté le 11-12-2014 à 22:20:49  profilanswer
 

Pour passer du mode click à Initialize, il faut seulement remplacer le mot par l'autre ?
 
Ca se trouve c'est cela le probleme. Et savez vous ce qu'est un user form modal ou non modal ? Car en utilisant "Activate", j'ai les menu mais pas la copie.

n°2245899
Marc L
Posté le 12-12-2014 à 15:17:14  profilanswer
 

 
           Le mieux est de déplacer les lignes de code d'une procédure à une autre …
 
           Par défaut un objet UserForm est modal : VBA attend sa fermeture pour poursuivre l'exécution du code principal
           comme expliqué dans l'aide VBA intégrée concernant sa méthode Show
  

n°2245901
yanounou91
Posté le 12-12-2014 à 15:25:32  profilanswer
 

Merci beaucoup.
 
 
Concretement il faut que je sépare le code des textBOX et ComboBox des copies et celui ou je demande la copie des éléments dans la feuille "Données"?
 
Pouvez vous juste me dire dans les deux cas, dans quelle procedure je dois intégrer les deux codes ? c'est à dire Userform Activate ou Initialize ou alors une sub classique ... c'est surtout la que je peche.  
 
En vous remerciant.
 
Yannick

n°2245904
Marc L
Posté le 12-12-2014 à 15:53:51  profilanswer
 

 
           En fait je n'en sais rien car c'est selon le contexte et le besoin …
 
           Quand j'ai un doute je pars de zéro, c'est à dire avec une seule procédure évènementielle dans le module de l'UserForm
           contenant l'unique instruction Beep !
 
           Si le bip est audible au moment opportun, c'est gagné sinon je teste une autre procédure évènementielle (Initialize, Activate, Click) …
 

n°2245926
yanounou91
Posté le 12-12-2014 à 17:13:25  profilanswer
 

Bon je vais essayer. C'est vrai que mon niveau en VBA est faible donc mon approche n'est pas rigoureuse je pense.
 
Le besoin est vraiment d'afffficher le formulaire, que l'utilisateur reponde aux questions du son gage (via les menus ou les cases à saisir), et que ces valeurs de saisie se copie dans un onglet du classeur.
 
Merci à vous en tout cas;
 
Cordialement.
 
yannick

n°2245972
yanounou91
Posté le 13-12-2014 à 14:34:45  profilanswer
 

Merci Beaucoup. En suivant votre conseil + un élément vu sur un autre forum, j'ai pu progressé. J'ai inscris le code suivant dans la procedure de fermeture (unload) :
 
Sheets("Données" ).Activate (chose que j'avais oubliée). Puis le code qui demande la copie des valeurs dans la feuille "Données". Cela fonctionne.
 
En revanche l'apparition directe des valeurs de menu sélectionnable à l'ouverture du formulaire ne fonctionne ni en Userform_activate ni Uniform_Initiliaze ... y'a t il d'autre evenement pour mon UserForm qui affichera les valeurs des menu à l'utilisateur ?
 
En vous remerciant.
 
Cordialement.
 
 
Yannick

n°2246063
Marc L
Posté le 14-12-2014 à 19:53:14  profilanswer
 


yanounou91 a écrit :

[…] ni Uniform_Initiliaze ...

            Celui-là ne risque pas de se déclencher ‼    Attention à l'orthographe …
 
            Sinon c'est l'un ou l'autre, vérifier déjà si cela fonctionne dans une procédure normale …
 

n°2246071
yanounou91
Posté le 14-12-2014 à 21:03:40  profilanswer
 

En suivant vos conseils et des infos d'autres forums, j'ai reussi à avoir ce que je voulais. Il fallait deja passer en "Activate". Mais mon probleme etait que dans les Userform on ne peut utiliser apparemment chaque évenement qu'une seule fois. Il fallait donc que je prenne cela en compte et que je sépare l'action des menus de formulaire et des copies de choix de l'utilisateur dans ma feuille "Données". C'est un peu artisanal mais je place le code pour ceux que ca pourrait intéresser. Il ne me manque plus qu'à faire un code pour rapatrier tous les onglets "Données" de plusieurs fichiers afin de construire ma base de données et un TCD qui permettra d'analyser les données du sondage. Merci à vous.

 

Et j'ai andonné le Initialize (avec la bonne orthographe), le soucis venait de l'emplacement de mes code "userform" et "copie des valeurs userform dans "Données".

 
Code :
  1. Option Explicit
  2. Dim i, non_rempli, a, b, c, d, e, f, l, m, u, v, w As String
  3. Dim q, n, o, p, r, s, t, y, z, x  As String
  4. 'pour enlever la croix rouge d'un UF
  5. '#If Win64 Then
  6. '   Private Declare PtrSafe Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  7. '   Private Declare PtrSafe Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  8. '   Private Declare PtrSafe Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  9. '#Else
  10. '   Private Declare Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  11. '   Private Declare Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  12. '   Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  13. '#End If
  14. 'Private Sub UserForm_Initialize()
  15. 'Dim hWnd As Long
  16. '    hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D" ) _
  17. '    & "Frame", Me.Caption)
  18. '    SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
  19. 'End Sub
  20. 'Fermeture, validation du questionnaire et copie des réponses dans l'onglet données
  21. 'Private Sub CommandButton1_Click()
  22. Sub CommandButton1_Click()
  23. non_rempli = 0
  24. q = ComboBox19.Value
  25. p = TextBox1.Value
  26. o = TextBox3.Value
  27. n = TextBox2.Value
  28. m = ComboBox5.Value
  29. l = ComboBox6.Value
  30. a = ComboBox21.Value
  31. b = ComboBox8.Value
  32. c = ComboBox13.Value
  33. d = ComboBox14.Value
  34. e = ComboBox15.Value
  35. f = ComboBox16.Value
  36. z = ComboBox20.Value
  37. y = ComboBox18.Value
  38. x = ComboBox9.Value
  39. w = ComboBox10.Value
  40. v = ComboBox11.Value
  41. u = ComboBox12.Value
  42. t = TextBox4.Value
  43. s = TextBox5.Value
  44. r = TextBox6.Value
  45. If a = "" Or b = "" Or c = "" Or d = "" Or e = "" Or f = "" Or l = "" Or m = "" Or u = "" Or v = "" Or w = "" Or x = "" Or y = "" Then
  46.       non_rempli = 1
  47. End If
  48. If z = "" Then
  49.       non_rempli = 1
  50. End If
  51. If n = "" Or o = "" Or p = "" Or r = "" Or s = "" Or t = "" Or q = "" Then
  52.       non_rempli = 1
  53. End If
  54. If non_rempli = 1 Then
  55. MsgBox ("Merci de remplir tous les champs" )
  56. Else
  57. Sheets("Données" ).Activate
  58. Sheets("Données" ).Range(Cells(2, 1), Cells(18, 1)) = q
  59. Sheets("Données" ).Range(Cells(2, 2), Cells(18, 2)) = p
  60. Sheets("Données" ).Range(Cells(2, 3), Cells(18, 3)) = o
  61. Sheets("Données" ).Range("D3" ) = Now
  62. Range("D4" ).Value = Left(Range("D3" ).Value, 10)
  63. Sheets("Données" ).Range(Cells(2, 4), Cells(18, 4)) = Range("D4" ).Value
  64. Sheets("Données" ).Cells(2, 8) = m
  65. Sheets("Données" ).Cells(3, 8) = l
  66. Sheets("Données" ).Cells(4, 8) = a
  67. Sheets("Données" ).Cells(5, 8) = b
  68. Sheets("Données" ).Cells(6, 8) = c
  69. Sheets("Données" ).Cells(7, 8) = d
  70. Sheets("Données" ).Cells(8, 8) = e
  71. Sheets("Données" ).Cells(9, 8) = f
  72. Sheets("Données" ).Cells(10, 8) = z
  73. Sheets("Données" ).Cells(11, 8) = y
  74. Sheets("Données" ).Cells(12, 8) = x
  75. Sheets("Données" ).Cells(13, 8) = w
  76. Sheets("Données" ).Cells(14, 8) = v
  77. Sheets("Données" ).Cells(15, 8) = u
  78. Sheets("Données" ).Cells(16, 8) = t
  79. Sheets("Données" ).Cells(17, 8) = s
  80. Sheets("Données" ).Cells(18, 8) = r
  81. UserForm1.Hide
  82. MsgBox "Merci d'avoir contribué à l'enquête." & Chr(10) & "" & Chr(10) & "Veuillez nous renvoyer le fichier pour traitement.", , "Message  :"
  83. Application.Dialogs(xlDialogSaveAs).Show
  84. End If
  85. 'Unload UserForm1
  86. End Sub
  87. Private Sub UserForm_Activate()
  88. ComboBox19.ColumnCount = 1 'Pour la liste déroulante Entité
  89. ComboBox19.List() = Array("RH", "DAF", "MP", "COMPTA", "DIRECTION", "DIV", "Etablissement" )
  90. ComboBox19.Value = Sheets("Données" ).Range("A2" ).Value
  91. ComboBox5.ColumnCount = 1 'Pour la liste déroulante Entité
  92. ComboBox5.List() = Array("1", "2", "4", "5" )
  93. ComboBox5.Value = Sheets("Données" ).Range("H2" ).Value
  94. ComboBox6.ColumnCount = 1 'Pour la liste déroulante Entité
  95. ComboBox6.List() = Array("1", "2", "4", "5" )
  96. ComboBox6.Value = Sheets("Données" ).Range("H3" ).Value
  97. ComboBox21.ColumnCount = 1 'Pour la liste déroulante Entité
  98. ComboBox21.List() = Array("1", "2", "4", "5" )
  99. ComboBox21.Value = Sheets("Données" ).Range("H4" ).Value
  100. ComboBox8.ColumnCount = 1 'Pour la liste déroulante Entité
  101. ComboBox8.List() = Array("1", "2", "4", "5" )
  102. ComboBox8.Value = Sheets("Données" ).Range("H5" ).Value
  103. ComboBox13.ColumnCount = 1 'Pour la liste déroulante Entité
  104. ComboBox13.List() = Array("1", "2", "4", "5" )
  105. ComboBox13.Value = Sheets("Données" ).Range("H6" ).Value
  106. ComboBox14.ColumnCount = 1 'Pour la liste déroulante Entité
  107. ComboBox14.List() = Array("1", "2", "4", "5" )
  108. ComboBox14.Value = Sheets("Données" ).Range("H7" ).Value
  109. ComboBox15.ColumnCount = 1 'Pour la liste déroulante Entité
  110. ComboBox15.List() = Array("1", "2", "4", "5" )
  111. ComboBox15.Value = Sheets("Données" ).Range("H8" ).Value
  112. ComboBox16.ColumnCount = 1 'Pour la liste déroulante Entité
  113. ComboBox16.List() = Array("1", "2", "4", "5" )
  114. ComboBox16.Value = Sheets("Données" ).Range("H9" ).Value
  115. ComboBox20.ColumnCount = 1 'Pour la liste déroulante Entité
  116. ComboBox20.List() = Array("1", "2", "4", "5" )
  117. ComboBox20.Value = Sheets("Données" ).Range("H10" ).Value
  118. ComboBox18.ColumnCount = 1 'Pour la liste déroulante Entité
  119. ComboBox18.List() = Array("1", "2", "4", "5" )
  120. ComboBox18.Value = Sheets("Données" ).Range("H11" ).Value
  121. ComboBox9.ColumnCount = 1 'Pour la liste déroulante Entité
  122. ComboBox9.List() = Array("1", "2", "4", "5" )
  123. ComboBox9.Value = Sheets("Données" ).Range("H12" ).Value
  124. ComboBox10.ColumnCount = 1 'Pour la liste déroulante Entité
  125. ComboBox10.List() = Array("1", "2", "4", "5" )
  126. ComboBox10.Value = Sheets("Données" ).Range("H13" ).Value
  127. ComboBox11.ColumnCount = 1 'Pour la liste déroulante Entité
  128. ComboBox11.List() = Array("1", "2", "4", "5" )
  129. ComboBox11.Value = Sheets("Données" ).Range("H14" ).Value
  130. ComboBox12.ColumnCount = 1 'Pour la liste déroulante Entité
  131. ComboBox12.List() = Array("1", "2", "4", "5" )
  132. ComboBox12.Value = Sheets("Données" ).Range("H15" ).Value
  133. TextBox1.Value = Sheets("Données" ).Range("B2" ).Value
  134. TextBox2.Value = Sheets("Données" ).Range("D2" ).Value
  135. TextBox3.Value = Sheets("Données" ).Range("C2" ).Value
  136. TextBox4.Value = Sheets("Données" ).Range("H16" ).Value
  137. TextBox5.Value = Sheets("Données" ).Range("H17" ).Value
  138. TextBox6.Value = Sheets("Données" ).Range("H18" ).Value
  139. ListBox1.ColumnCount = 1 'Pour la liste déroulante rappel du bareme ds le formulaire
  140. ListBox1.List() = Array("1: Trés insatisfaisant", "2: Plutôt insatisfaisant", "4: Plutôt satisfaisant", "5: Très satisfaisant" )
  141. End Sub
  142. 'Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  143. 'Dim c As Control
  144. ' For Each c In Me.Controls
  145. '   Select Case TypeName(c)
  146. '     Case "TextBox", "ComboBox"
  147. '       If c.Value = "" Then
  148. '          MsgBox "Veuillez saisir toutes les champs SVP"
  149. '           Cancel = True
  150.          
  151. '       End If
  152. '     End Select
  153. '   Next c
  154.    
  155. '   End Sub
  156.    
  157. '    Private Sub UserForm_Terminate()
  158. 'Application.Dialogs(xlDialogSaveAs).Show
  159. 'End Sub

 

 

PS : VBA fait toute de meme peur, parfois sans savoir pourquoi une instruction fonctionne et sans rien toucher 5mn plus tard une erreur arrive. Cela m'est arrivé sur une de mes Combobox (ligne 132 du code joint ci dessus). Il sortait une erreur sur la Value alors que l'instruction est la meme que sur les autres lignes. J'ai recréé une Combobox sur le meme principe, et la plus de probleme ... c'est déroutant.

 

Merci pour vos conseils et désolé pour mon manque de rigueur.

 

Cordialement.

 

Yannick


Message édité par yanounou91 le 14-12-2014 à 21:19:44

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Faire apparaitre les valeurs de la liste d'un combo/text box directeme

 

Sujets relatifs
Cherches liste de compétences de type Linked-in[KSH] Opération sur valeurs hexadécimales
[PHP] Checkbox dans une listeSQL Comparaison 2 valeurs [résolu]
[RESOLU] FORMULAIRE + LISTE MYSQLInserrtion données et recherche de valeurs
Image de fond pour une liste[Shell] Executer des commandes en provenance d'une liste
Récupérer une liste de ville avec PHP/CurlParcourir une liste avec iterator
Plus de sujets relatifs à : Faire apparaitre les valeurs de la liste d'un combo/text box directeme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR