alimenter une listbox - VB/VBA/VBS - Programmation
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
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
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 :
|
Pour une textbox sur un formulaire, mon code ressemblerais à :
Code :
|
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
Marsh Posté le 27-02-2015 à 21:02:26
c'est l'esprit
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
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
Marsh Posté le 02-03-2015 à 08:59:34
bonjour
je vous remercie de votre aide cela marche bien
bonne semaine
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
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
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
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
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