eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008
-
2 juin 2008 à 11:56
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
2 juin 2008 à 17:19
Bonjour, j'ai un petit problème sur un code
J'ai un userform avec une textbox act et ensuite 5 case à cocher avec 5textbox prix
Je voudrais que si la textbox act qui est renseignée existe déja alors une msg box apparait pour dire que cette activité existe deja.
Voila mon code sur la textbox
Private Sub Act_Change()
If IsNumeric(Right(Act, 1)) Then
'si Act est numérique (le dernier caractère entrée va être testé à chaque fois)
erreur = MsgBox("Pas de numérique!", vbOKOnly + vbCritical, "ERREUR")
'une MsgBox va apparaître
If Len(Act) > 1 Then
Act = Left(Act, Len(Act) - 1)
Else
Act = "" 'seul le caractère défectueux va être supprimé
End If
End If
End Sub
Et voila ce que j'ai trouvé à mettre, je crois que j'ai trouvé sur le forum.
Dim Recherche As Range
Set Recherche = Columns(" A ").Find(Act)
If Not Recherche Is Nothing Then
mess = MsgBox (« Cette activité existe déjà », vbokonly + vbcritical, « ATTENTION »)
End If
Mais je ne sais pas si cela est correct ni commen l'integrer.
Merci de votre aide
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 2 juin 2008 à 12:53
Salut,
tu peux peut-être intégré ton code dans l'évènement Exit de ton TextBox.
Mais si tu dois faire la vérif sur tes 5 textbox, peut-être tout vérifer lors d'un clic sur un CommandButton.
Si une condition n'est pas bonne, tu n'exécute pas le code du bouton, mais affiche ton message
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008 2 juin 2008 à 14:21
J'ai mis sous l'évenement exit cela marche très bien.
merci beaucoup Mortalino.
J'ai une autre petite question si cela est possible.
Je voudrais créer un bouton Modifier qui aurait une liste deroulante avec toutes les activités, suivant le choix de l'administrateur, je voudrais que le userform ADM s'ouvre avec soit que le textbox Act = à l'activité qu'il a choisit, soit le textbox Act ainsi que tout les prix.
Quel choix d'apres toi serait le mieux.
Dans les 2 cas je ne sais pas trop comment faire pour faire apparaitre ADM avec les valeurs recuperer dans excel??
Merci de votre aide
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 2 juin 2008 à 14:28
Humm pas facile car je n'ai pas tous les élements.
Si tu veux afficher toutes les Activités dans un ComboBox sans doublons, passe peut-être par une collection.
Car les collections génère une erreur en cas de doublons, suffit de l'occulter :
on local error resume next
dim i as long
dim cCol as new collection
For i = 2 To Range("A65536").End(xlUp).Row
cCol.Add Range("A" & i).Value
Next i
On error Goto 0
For i = 1 to cCol.Count
TonComboBox.AddItem cCol(i)
Next i
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008 2 juin 2008 à 17:14
Heu je sais pas ce qu'est un doublons. Lol je suis nulle hein. Le truc c'est que j'ai deja une liste deroulante dans un autre userform je peux peut-être reprendre la même programmation et après reste plus qu'à trouver commen faire revenir l'activité.
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 2 juin 2008 à 17:19
Un doublon c'est une donnée en double.
Par exemple, dans ta colonne A :
A
1 Informatique
2 Sport
3 Bouffe
4 Informatique
etc..
Ben quand tu lis les données avec la boucle For Next, il vérifie chaque valeur. Si une est double (ou triple ou +) comme ici Informatique, elle ne se rajoutera pas dans la collection (d'ailleurs, ça me fait penser, j'ai oublié de metttre la clé dans le Add de la collection, obligatoire pour gérer les doublons)
Ensuite tu lis les données de la collection afin de les rajouter dans ton ComboBox.
Si c'est pas ça que tu veux, essaie de fournir + d'infos voir même un exemple concrêt