MsgBox sous condition

Résolu
Zauri90 -  
Le Pingou Messages postés 12274 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

13 réponses

  1. Le Pingou Messages postés 12274 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
    1. 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
  2. Le Pingou Messages postés 12274 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
    1. zauri90
       
      C pas grave je v me débrouiller autrement
      0
  3. Le Pingou Messages postés 12274 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
    1. zauri90
       
      Merci pour votre aide mais j ai décider de faire autrement avec un système plus facile
      0
    2. 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
  4. Le Pingou Messages postés 12274 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
    1. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12274 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
    1. 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
  7. Le Pingou Messages postés 12274 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
    1. zauri90
       
      sa ne marche toujours pas y a le même messages d erreur
      0
    2. zauri90
       
      Mais j ai une des cases de cocher ou y a marquer: MANQUANT: Microsoft calendar control 11.0
      0
    3. zauri90
       
      Es que vous auriez une solution a mon problème ?
      0
  8. Le Pingou Messages postés 12274 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
    1. 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
  9. Le Pingou Messages postés 12274 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
    1. 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
  10. Le Pingou Messages postés 12274 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
    1. 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
  11. Le Pingou Messages postés 12274 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
    1. zauri90
       
      Ok merci bon courage
      0
  12. Le Pingou Messages postés 12274 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
    1. 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
  13. Le Pingou Messages postés 12274 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
    1. zauri90
       
      Laissez tombé j ai réussi merci
      0
  14. Le Pingou Messages postés 12274 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