alimenter une listbox

alimenter une listbox - VB/VBA/VBS - Programmation

Marsh Posté le 25-02-2015 à 21:21:47    

bonjour
voici mon premier probleme
dans ma feuil1 j ais une listbox1 dans la feuil2 j ais une listbox2 que je voudrais alimenter par la colonne A de la feuil3
pour le deuxieme probleme  
j ais un userform avec 3 textbox et 6 checkbox
a l ouverture de userform il faut remplire les 3 textbox c est imperatif pour l enregistrement a la fin
don je voudrais que si ont a pas remplies les 3 textbox que l ont ne puisse pas clicker sur les checkbox
si ils sont remplies alors oui la ont peut clicker dessus
merci de votre reponse

Reply

Marsh Posté le 25-02-2015 à 21:21:47   

Reply

Marsh Posté le 25-02-2015 à 21:36:00    

Les listbox, ont une propriété Rowsource (si je me souviens bien) où tu peut indiquer une plage de donnée.
Pour ce genre de chose, je crée une plage nommée pointant au bon endroit et je met juste le nom de la plage dans le rowsource.
 
Pour le Deuxième souci:
Il faudra que tu gère l’événement "_Change" de chaque textbox, vérifier que le contenu des 3 textbox est différent de ta valeur par défaut (ou retenir celles qui ont été modifiées). Si les 3 textbox ont été modifiées, tu ajuste les propriétés locked et/ou enable en fonction de ce que tu veux vraiment.
Et du coup, il faut changer les propriété locked et enable par défaut de tes checkbox en mode design de ton formulaire ou dans l'evenement _Initialize()
En general, je crée une méthode avec les tests qui ajuste les propriété. Du coup, dans les _change, je fait juste appel à cette méthode.
 
 
Un truc dans le genre
 
Bon courage


Message édité par Arl Guhr le 25-02-2015 à 21:40:51

---------------
il s'appel le ronge me doute
Reply

Marsh Posté le 26-02-2015 à 16:13:05    

bonjour  
merci de vos réponses :)  
pour la première
dans propriété pas de rowsource j ais excel 2007 c est peut être du a sa
j ais oublie de vous dire que je suis un débutant
pouvez vous me donner un code vba  
pour dire qu il faut aller dans la feuil3 Colonne A pour remplir la liste
pour ce qui est du deuxième problème
vous serait t'il possible de m'explique avec un code et les explication en vert

Reply

Marsh Posté le 27-02-2015 à 00:36:54    

Pour la première partie, Je pense que j'ai mal lu ta demande.
Ce que tu entends par listbox, c'est une cellule avec une liste de choix? ou un élément de l'onglet developpeur que tu as dessiné sur la feuille?
 
Dans le premier cas c'est ce genre de tuto qu'il faut suivre (étape 3 )
http://www.commentcamarche.net/faq [...] ule-simple
 
Dans le second cas :
C'est ce genre de tuto qu'il faut suivre (partie Add a list box (Form control)):
https://support.office.com/en-sg/ar [...] e4f1d988b3
 
 
Pour le second point, dans ton formulaire en mode design, double click sur une textbox :
Excel va créer un sub pour toi de la forme :

Code :
  1. Private Sub TextBox1_Change()
  2. End Sub


Pour une textbox sur un formulaire, mon code ressemblerais à  :

Code :
  1. 'Pour bien apprendre
  2. Option explicit
  3. ' pour retenir ce qui as été changé
  4. Dim text1Changed as boolean
  5. Private Sub TextBox1_Change()
  6.     'pour indiquer que le contenu as changé
  7.     if TextBox1.value <> "" then
  8.         text1Changed = true
  9.     end if
  10.     'Pour changer les propriétés des checkbox
  11.     call update()
  12. End Sub
  13. ' methode perso pour gérer l'affichage
  14. function update() as boolean
  15.     'le résultat 'graphique' est différent, c'est à toi de voir...
  16.     checkbox1.enabled = not text1Changed
  17.     checkbox1.locked = text1Changed
  18.     update = text1Changed
  19. end sub
  20. 'methode derrière un bouton
  21. Private Sub Button1_Click()
  22.     'pour vérifier qu'on as bien fait un changement
  23.     if not update  then
  24.         msgbox "on n'enregistre pas, modifez la txtbox"
  25.         exit sub
  26.     end if
  27.    
  28.    ' ce que tu veux faire si tout est bon
  29.     msgbox "on enregistre"
  30. End Sub


Message édité par Arl Guhr le 27-02-2015 à 01:02:23

---------------
il s'appel le ronge me doute
Reply

Marsh Posté le 27-02-2015 à 17:53:22    

bonjour
je vous remercie encore de votre aide pour mon premier probleme
j ais fini par trouver et cela marche
 
pour mon deuxiem probleme  
je vais etudier votre code
et ensuite essayer de l adapter pour mon probleme  
je vous tiendrait au courranr
merci :)

Reply

Marsh Posté le 27-02-2015 à 21:02:26    

c'est l'esprit :jap:


---------------
il s'appel le ronge me doute
Reply

Marsh Posté le 28-02-2015 à 13:18:01    

bonjour
je ne comprend pas ou mettre se partie de code  
' methode perso pour gérer l'affichage
function update() as boolean
    'le résultat 'graphique' est différent, c'est à toi de voir...
    checkbox1.enabled = not text1Changed
    checkbox1.locked = text1Changed
    update = text1Changed
end sub
pouvez vous me l expliquer dans quelle partie le mettre et pourquoi
merci :??:

Reply

Marsh Posté le 28-02-2015 à 18:11:41    

Cette méthode se met dans le même module que les autres.
 
En gros, au lieu d'écrire dans chaque _change le code pour changer l'apparence des combobox, je l'isole dans une methode que je peux appeler depuis les différents _Change


---------------
il s'appel le ronge me doute
Reply

Marsh Posté le 02-03-2015 à 08:59:34    

bonjour :)  
je vous remercie de votre aide cela marche bien
bonne semaine

Reply

Marsh Posté le 05-03-2015 à 21:45:42    

bonsoir
j ais encore un probleme
j ais 4 textbox dans une feuille excel
nome t1,t2,t3,t4
dans t1 je rentre un nombre avec une tolerence +- ex:32.00+-+0.05
si dans t4 je rentre un resultat superieur ou inferieur a t1 alors je veux que dans t3 une croix rouge
et si c 'est compri dans la tolerence alors dans t2 une croix noir  
pouvez vous m aider
merci :)

Reply

Marsh Posté le 05-03-2015 à 21:45:42   

Reply

Marsh Posté le 06-03-2015 à 09:46:36    

Bonjour,
 
Si ce n'est pas encore trop tard, je diviserais ton t1 en deux.
Une textbox pour la valeur et une autre pour la tolérance.
 
et il me semble que pour certaines tolérance en meca, ce n'est pas toujours +-. Des fois, on peut vouloir spécifier que c'est la valeur ou plus long.
 
Pour te donner une direction je reformulerai en:
quand la valeur dans t4 change :
Je verifies si la valeur en t4 est dans le range toléré précisé en t1 (ou t1 et t1bis).  
Si elle est dans le range, j'écrit une croix dans t2, je met la couleur du texte en noir en t2, je vide le contenu de t3 et change la couleur en t3.
Sinon, j'écrit une croix dans la cellule t3, je change la couleur du texte en rouge dans t3 et je vide le contenu de t2 et change la couleur en t2.
 
(et si tu n'as pas besoin de moments où la couleur de fond de t2 et t3 ne change, tu peux directement le faire en mode design)
 
bon courage :)


---------------
il s'appel le ronge me doute
Reply

Marsh Posté le 07-03-2015 à 16:46:06    

bonjour
je viens de voir votre message
de mon cote j ais chercher j ais presque trouve  
mais le problème c est qu il faut que je Click sur une cellule a cote des textbox pour mettre la croix je v ais finir  par trouver  
je v ais aussi exploiter votre idée je vous tiendrais au courant :)  
merci encore

Reply

Marsh Posté le 09-03-2015 à 17:02:29    

bonjour
voici mon code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Valeur, Tolerance As Double
Dim montruc As String
 
On Error Resume Next
 
montruc = TextBox216.text
Valeur = Val(TextBox216.text)
montruc1 = Replace(montruc, "+", "/" )
montruc1 = Replace(montruc1, "-", "/" )
montruc1 = Replace(montruc1, "//", "/" )
pos = InStr(montruc1, "/" )
If pos = 0 Then
  Valmax = Valeur
  Valmin = Valeur
Else
  methode = Mid(montruc, pos)
  If methode Like "+#*" Then
     Valmax = Valeur + Val(Mid(methode, 2))
     Valmin = Valeur
  ElseIf methode Like "-#*" Then
     Valmax = Valeur
     Valmin = Valeur - Val(Mid(methode, 2))
  ElseIf methode Like "+-#*" Or methode Like "-+*" Then
     Valmax = Valeur + Val(Mid(methode, 3))
     Valmin = Valeur - Val(Mid(methode, 3))
  Else
    Valmax = Valeur
    Valmin = Valeur
  End If
End If
 
If (TextBox219.Activate) Then   'Valide qu'on est d en  Textbox219
 
     If TextBox219.value = "" Then
        TextBox222.value = ""
        TextBox222.Font.Color = 0
        TextBox224.value = ""
        TextBox224.Font.Color = 0
       ElseIf (TextBox.value > (Valmax)) Or (TextBox.value < (Valmin)) Then
         
       ' TextBox224.value = "X"
      ' TextBox224.ForeColor = 255 'code pour mettre en rouge la croix dans le textbox 224
       TextBox222.value = "X" 'code pour mettre en noir la croix dans le textbox 222
       TextBox222.ForeColor = 0
    If (TextBox.value < (Valmax)) Or (TextBox.value < (Valmin)) Then
        'sinon c'est à l'intérieur de l'intervale
     
         
       ' TextBox222.value = "X"
       ' TextBox222.ForeColor = 0
         
         TextBox224.value = "X"
       TextBox224.ForeColor = 225
    End If
End If
End If
End Sub
mais la que le nombre dans le textbox 219 soit compris dans la tolerence ou pas j ais toujours une croix noir et rouge ou qu 'une croix noir meme hors tolerenc ou une croix rouge meme dans la tolerence  
pouvez vous m aider  
merci :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed