Posez votre question Signaler

MsgBox sous condition [Résolu]

Zauri90 - Dernière réponse le 1 juil. 2010 à 16:05
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
Lire la suite 
Réponse
+0
moins plus
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 ?
zauri90- 24 juin 2010 à 14:48
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
Répondre
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+0
moins plus
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é.
zauri90- 29 juin 2010 à 15:46
C pas grave je v me débrouiller autrement
Répondre
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+0
moins plus
Bonjour,
Peut-être qu'une explication plus détaillée me permettrait de vous aider !
zauri90- 29 juin 2010 à 16:07
Merci pour votre aide mais j ai décider de faire autrement avec un système plus facile
Répondre
zauri90- 29 juin 2010 à 16:13
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 ?
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Oui , qu'elle est le problème ou que voulez-vous réaliser ?
zauri90- 29 juin 2010 à 18:06
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
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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
zauri90- 30 juin 2010 à 09:30
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
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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.
zauri90- 30 juin 2010 à 10:57
sa ne marche toujours pas y a le même messages d erreur
Répondre
zauri90- 30 juin 2010 à 11:06
Mais j ai une des cases de cocher ou y a marquer: MANQUANT: Microsoft calendar control 11.0
Répondre
zauri90- 30 juin 2010 à 14:53
Es que vous auriez une solution a mon problème ?
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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 : http://cjoint.com/ et poster le lien.
zauri90- 30 juin 2010 à 18:15
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
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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].
zauri90- 30 juin 2010 à 23:21
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
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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
zauri90- 1 juil. 2010 à 09:33
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
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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
zauri90- 1 juil. 2010 à 11:22
Ok merci bon courage
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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.
zauri90- 1 juil. 2010 à 14:35
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
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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
zauri90- 1 juil. 2010 à 15:48
Laissez tombé j ai réussi merci
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
A bon d'accord, je le retiens pour une prochaine.
Sans commentaire.

Salutations.
Le Pingou
Ajouter un commentaire
Ce document intitulé «  MsgBox sous condition  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.