MsgBox sous condition

Résolu
Zauri90 -  
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Sous Excel 97 sous VBA, je veux faire apparaitre un messages sous certaine condition avec MsgBox .

J ai 3 ComboBox et 2 TextBox, je veut que le message apparaisse que lorsque que une personne choisi exactement les même chose qu une autres personnes.

C est a dire, si untel choisi dans les 3 comboBox le chiffres 5 pour les 3 et dans les 2 TextBox les dates 01/01/2010 et que une autres personnes choisi exactement les mêmes quantité a la même dates je veut cas ce moment la le message apprait.

Je ne sais pas quel code utilisé pour faire cette réalisation

Merci

A voir également:

13 réponses

Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Juste au passage.
Pouvez-vous mettre une copie du code que vous utilisez pour copier les données des 3 ComboBox et 2 TextBox sur la feuille du classeur ?
0
zauri90
 
Voila mon Code:


Private Sub CommandButton1_Click()
Dim trouve, trouve1, trouve2, trouve3 As Range
Dim premcol, dercol, col, premlig, derlig, i As Integer
Dim Rng As String
If UserForm1.ComboBox3.Value = "" Or UserForm1.ComboBox4.Value = "" Or UserForm1.ComboBox5.Value = "" Or UserForm1.ComboBox6.Value = "" Then
MsgBox "Tous les champs sont obligatoires"
Exit Sub
End If
With Sheets(UserForm1.ComboBox3.Value).Rows(3)
Set trouve = .Cells.Find(UserForm1.ComboBox6.Value)
If trouve Is Nothing Then
MsgBox "Utilisateur non trouvé"
Else
premcol = trouve.Column
dercol = trouve.Offset(0, 1).Column - 1
End If
End With
With Sheets(UserForm1.ComboBox3.Value)
Rng = .Range(.Cells(4, premcol), .Cells(4, dercol)).Address
End With
With Sheets(UserForm1.ComboBox3.Value).Range(Rng)
Set trouve1 = .Cells.Find(UserForm1.ComboBox4.Value)
If trouve1 Is Nothing Then
MsgBox "Matériel non trouvé"
Else
col = trouve1.Column
End If
End With
With Sheets(UserForm1.ComboBox3.Value).Columns(3)
Set trouve2 = .Cells.Find(CDate(UserForm1.TextBox1.Value))
If trouve2 Is Nothing Then
MsgBox "erreur de date de retrait"
Else
premlig = trouve2.Row
End If
Set trouve3 = .Cells.Find(CDate(UserForm1.TextBox2.Value))
If trouve3 Is Nothing Then
MsgBox "erreur de date de restitution"
Else
derlig = trouve3.Row
End If
End With
With Sheets(UserForm1.ComboBox3.Value)
For i = premlig To derlig
.Cells(i, col).Value = CInt(UserForm1.ComboBox5.Value)
Next i
End With



If UserForm1.ComboBox6.Value = "Réparation" Or UserForm1.ComboBox6.Value = "Etalonnage" Or UserForm1.ComboBox6.Value = "Prêt" Then
UserForm2.Show
End If

Set trouve = Nothing
Set trouve1 = Nothing
Set trouve2 = Nothing
Set trouve3 = Nothing



Unload UserForm6
End Sub
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Merci pour le code.
J'ai bien les 4 Combobox3,4,5 et 6, soit une de plus que les 3 mentionnées, et les 2 TextBox 1 et 2 mais il est impossible de trouvé un référence qui me permette de détecter une même combinaison de critères.
Désolé.
0
zauri90
 
C pas grave je v me débrouiller autrement
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Peut-être qu'une explication plus détaillée me permettrait de vous aider !
0
zauri90
 
Merci pour votre aide mais j ai décider de faire autrement avec un système plus facile
0
zauri90
 
Par contre j ai un autre problème sur une de mes comBobox qui n a rien avoir a celui la es que vous pourriez m aider ?
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Oui , qu'elle est le problème ou que voulez-vous réaliser ?
0
zauri90
 
je voudrais comparer la date Système au date qui apparaisse dans une de mes comboBox.
C est a dire si la date est antérieur a la date système elle n apparait pas dans la comboBox mais si elle n est pas encore passer alors la elle apparait .

Je voudrais connaître le code pour pouvoir réaliser ceci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Vous parlez de [ComboBox1] qui est une zone de liste déroulante qui contient des dates.
Donc lorsque vous sélectionnez une date on va contrôler cette date et si elle est antérieur à la date système (date du jour) on remplace par un vide.

Voici le code à mettre dans le module du formulaire (Userform):
Private Sub ComboBox1_Change()
If Me.ComboBox1 = "" Then Exit Sub ' sortir si pas de date
If CDate(Me.ComboBox1) < Date Then
' date est antérieur
    Me.ComboBox1.Value = ""
End If
End Sub
0
zauri90
 
J ai un message d erreur qui apparait avec marquer: erreur de compilation Projet ou bibliothèque introuvable .
Et ComboBox1 surligner en BLEU

Sur cette phrase:: If CDate(Me.ComboBox1) < Date Then
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Il manque la/les référence/s [Microsoft Excel 12.0 (ou 11.0) Object Library] / [Microsoft Forms 2.0 Object Library] pour le [VBAProject].
1.- ouvrir [Votre classeur.xls] puis touche Alt+F11 pour ouvrir l'éditeur VBA
2.- Sur Outils clic Références
3.- Cocher la/les référence/s citée/s ci-dessus.
0
zauri90
 
sa ne marche toujours pas y a le même messages d erreur
0
zauri90
 
Mais j ai une des cases de cocher ou y a marquer: MANQUANT: Microsoft calendar control 11.0
0
zauri90
 
Es que vous auriez une solution a mon problème ?
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
En principe le code que vous m'avez demandé n'as pas besoin de cette référence [MANQUANT: Microsoft calendar control 11.0].
Je veux bien regarder se qui se passe, mettre une copie de votre classeur sur : https://www.cjoint.com/ et poster le lien.
0
zauri90
 
Voici le lien je veut faire ce que je vous ai demandées sous l userform 4 . ComboBox11

http://www.cijoint.fr/cjlink.php?file=cj201006/cijOTUtPQM.xls
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Pas facile de comprendre les diverses démarches. J'ai fait un essai avec un prêt du 10.6.2010 au 15.7.2010 et les indications son correctes dans la feuille [Expo pro].
Par contre si je fais une restitution anticipé il me donne une erreur su la date de retrait [Combobox11] qui est vide. Il me semble que ce n'est pas correct car vous devriez avoir la date de restitution qui doit être postérieur à la date système ..... ?
Pour le reste tout marche correctement sans la référence [Microsoft calendar control 11.0].
0
zauri90
 
Voila actuellement en restitution anticipé j ai toutes les dates qui apparaisse ou il y a eu du retrait de matériel et donc je veut juste qu il n y ai que les dates postérieurs a la dates systèmes qui apparaisse dans la comboBox 11 .
Bien sur si c possible.
Sans votre code mon système marche et la comboBox 11 aussi mais j ai toutes les dates de l année ou y a eu du matériel retiré qui apparaisse.

Merci
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Oui d'accord, mais sans un brin d'explication de votre part sur le fonctionnement de votre application se serait plus simple pour moi ....
Pour ceci :
Sans votre code mon système marche et la comboBox 11 aussi mais j ai toutes les dates de l année ou y a eu du matériel retiré qui apparaisse.
Le code à été réaliser pour contôler la date affichée dans la zone de liste et non pas la liste elle même dont je n'ai encore pas réussi à trouver sa provenance.
Et cela dépend aussi ou vous avez placer mon code....

Salutations.
Le Pingou
0
zauri90
 
J ai placer votre code sous l userform 4-comboBox 11 la partie restitution anticipée sert a restituée du matériel a une dates antérieur a la date de restitution initialement prévu .
Donc dans la partie restitution anticipée a date de retrait il va apparaître toutes les dates ou il y a eu du matériel retiré pour toutes l année.

Mais moi je veut juste que dans cette comboBox n apparaisse que les dates qui seront postérieurs a la dates systèmes pour ne pas avoir toutes les dates de l années
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Eh bien oui, avec cette explication c'est clair que mon code n'est pas conçu pour cela.
Je vais regarder comment réaliser un code conforme à votre demande
0
zauri90
 
Ok merci bon courage
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
J'ai supprimer l'ancien code dans la procédure [Private Sub ComboBox11_Change()].
J'ai introduit le nouveau, il est signaler entre ******* dans la procédure [Private Sub ComboBox8_Change]
Votre dossier : http://www.cijoint.fr/cjlink.php?file=cj201007/cij6BG6Ydz.xls
A vous la découverte.
0
zauri90
 
Désoler mais sa ne marche pas y a un truc qui bloque y a marquer : la méthode sheets de l objet global a échouer
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Cela ne marche pas ne veux rien dire.
Alors allez sur débogage et ou se touve l'erreur dans la procédure ?
Note: votre classeur fonctionne correctement chez moi, je teste toujours avant mise à disposition.
Salutations.
Le Pingou
0
zauri90
 
Laissez tombé j ai réussi merci
0
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
A bon d'accord, je le retiens pour une prochaine.
Sans commentaire.

Salutations.
Le Pingou
0