MsgBox sous condition
Résolu
Zauri90
-
Le Pingou Messages postés 12250 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12250 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
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:
- MsgBox sous condition
- Excel cellule couleur si condition texte - Guide
- Excel condition ou - Guide
- Excel colorer une cellule sous condition d'une autre cellule - Forum Excel
- Changer la couleur d'une cellule en fonction d'une autre cellule - Forum Bureautique
- Copier ligne excel sous condition sans macro ✓ - Forum Excel
13 réponses
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 ?
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 ?
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é.
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é.
Bonjour,
Oui , qu'elle est le problème ou que voulez-vous réaliser ?
Oui , qu'elle est le problème ou que voulez-vous réaliser ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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):
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
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.
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.
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.
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.
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].
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].
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
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
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
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
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
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
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
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
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.
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.
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