Macro / module excel

Résolu
Bonjour à tous

Voilà je voudrais qu'un message apparait dans des cellule de classeur excel, mais je ne sais pas comment faire. voila mon problème.

J'ai fait une liste dans des cellules de B7 à B30(ex. CB;CBR;Chèque)
et je voudrai que quand je sélection Chèques un message m'indique qu'il faut inscrit un néméro de chèque dans la cellule (ex.C7). si quelqu'un a la solution je serai ravi. pour la programmation je suis très,très petit débutant. alors je vous demande de bien vouloir bien détailler les solution. je vous remerci.
Configuration: Xp familliale.
Excel 2000 pro.

8 réponses

  1. salut à toi ooooh grand LUPIN

    Je tien remercié beaucoup pour l'aide que tu m'a apporté, tu fais mon bonheur. Merci mille fois, car s'en toi je n'aurai pas pu evoluer dans ma base.

    Merci A+
    1. re :

      Voici donc deux possibilités :

      1 er cas : Un simple numéro de chèque sans lettre

      Private Sub Worksheet_Change(ByVal Target As Range)
      
          Dim CelluleVise As Range
          Dim Reponse As Variant
          Dim Question As String
          Dim Titre As String
          
          Set CelluleVise = Application.Intersect(Target, Range("B7:B30"))
          
          If CelluleVise Is Nothing Then
              'MsgBox "La cellule n'est pas dans l'intersection"
              DoEvents
          Else
              'MsgBox "La cellule est dans l'intersection"
              DoEvents
              If (ActiveCell.FormulaR1C1 = "Chèque") Then
                  Question = "Entrer un numéro de chèque s.v.p."
                  Titre = "Saisie du numéro de chèque"
                  Reponse = InputBox(Question, Titre, "100")
                  'Est-ce un nombre ? et est-il plus grand que 99
                  If ((Val(Reponse) <> 0) And (Val(Reponse) > 99)) Then
                      ActiveCell.Offset(0, 1).Value = Val(Reponse)
                  End If
              End If
          End If
      
      End Sub
      


      2 e cas : Un numéro de chèque complexe

      Private Sub Worksheet_Change(ByVal Target As Range)
      
          Dim CelluleVise As Range
          Dim Reponse As Variant
          Dim Question As String
          Dim Titre As String
          
          Set CelluleVise = Application.Intersect(Target, Range("B7:B30"))
          
          If CelluleVise Is Nothing Then
              'MsgBox "La cellule n'est pas dans l'intersection"
              DoEvents
          Else
              'MsgBox "La cellule est dans l'intersection"
              DoEvents
              If (ActiveCell.FormulaR1C1 = "Chèque") Then
                  Question = "Entrer un numéro de chèque s.v.p."
                  Titre = "Saisie du numéro de chèque"
                  Reponse = InputBox(Question, Titre, "100 AB")
                  ActiveCell.Offset(0, 1).Value = Reponse
              End If
          End If
      
      End Sub
      


      Attention, tu remarqueras que l'évènement n'est pas le même
      que dans le message 2!

      Message 2 -> Évènement : Worksheet_SelectionChange(ByVal Target As Range)
      Ce message -> Évènement : Worksheet_Change(ByVal Target As Range)

      Lupin
      1. resalut LUPIN

        j'ai oublier de te dire que pour le N° chèque si c'est possible il voudrais qu'il soit accompagné de 2 lettres 1000000 AA ou 1200000 BC

        SI POSSIBLE CAR JUSTE LE N° SUFFIRA ." les lettres c'est un extra si ont peut dire car tous les Chèques de banque ne termine pas des lettres"

        MERCI. A+
        1. salut LUPIN

          voilà je suis entrain de me faire un compte bancaire a ma façon,
          alors je vais essayer de m'expliquer.

          Voilà dans excel j'ai nommé mes colonnes ainsi "A Date,B Titre,C N° Chèque,D destinataire,E Catégorie, F SCatégorie,G Débit,H Solde". Voilà pour mes colonnes. Dans la colonne "B Titre" j'ai fais un liste déroulant par l'intermédiaire de {donnée,validation,liste et j'ai inscri CB;CBR;Chèque,RemChèque,Virement,etc}pour une cellule et j'ai fait un coller/copier pour les autres cellules. Je voudrais que quand je déroule cette liste et que je choisi "Chèque" qu'un message m'indique qu'il faut inscrire un N° Chèque dans la cellule colone C [ex.colonne B 7 =si sélectionne Chèque , inscrire Colonne C7 N° Chèque et ainsi de suite B8 si sélection Chèque inscrire Colone C8 N° Chèque].

          J'espère que je me suis bien expliqué .

          Merci pour ton aide.

          A+

          Si tu me donne ton E-Mail je t'envoi mon classeur SI TU VEUX.
          1. re :

            Pour ce faire, il faut que tu me décrive mieux ta liste !

            Est-ce un plage de cellules, un cellule en particulier, une liste
            déroulante ?

            S'il s'agit d'une liste déroulante, est-elle sur un feuille, sur un
            "userform"

            dis m'en plus !

            Lupin
            1. salut Lupin

              je te remerci pour ton aide, le problème est résolu en grande partie, car je voudrais que lorsque je sélectionne Chèque dans ma liste là il voudrais que le message s'affiche mes pas quand je choisi CB ou CBR, j'espère que tu me comprend. Merci si tupeut m'aidé. A+
              "liste créer par donnée, validation, liste"
              1. re:

                J'ai oublié de renommer une variable !

                Private Sub Worksheet_SelectionChange(ByVal Target As Range)
                    
                    Dim CelluleVise As Range
                    Dim Reponse As Variant
                    Dim Question As String
                    Dim Titre As String
                    
                    Set CelluleVise = Application.Intersect(Target, Range("B7:B30"))
                    
                    If CelluleVise Is Nothing Then
                        'MsgBox "La cellule n'est pas dans l'intersection"
                        DoEvents
                    Else
                        'MsgBox "La cellule est dans l'intersection"
                        DoEvents
                        Question = "Entrer un numéro de chèque s.v.p."
                        Titre = "Saisie du numéro de chèque"
                        Reponse = InputBox(Question, Titre, "100")
                        'Est-ce un nombre ? et est-il plus grand que 99
                        If ((Val(Reponse) <> 0) And (Val(Reponse) > 99)) Then
                            ActiveCell.Offset(0, 1).Value = Val(Reponse)
                        End If
                    End If
                
                End Sub
                


                Lupin
                1. Bonjour,

                  Une fois votre classeur ouvert, allez dans l'éditeur VBE.

                  //Outils/Macro/Visual Basic Editor

                  À gauche, la fenêtre des projets devrait être ouverte, sinon

                  //Affichage/ Explorateur de Projet

                  Pointer/Ouvrir le nom de votre classeur

                  Repérer le nom de la feuille et effectuer un double clic

                  Copier/coller le code suivant :

                  Private Sub Worksheet_SelectionChange(ByVal Target As Range)
                      
                      Dim CelluleVise As Range
                      Dim Reponse As Variant
                      Dim NumCheque As Integer
                      Dim Question As String
                      Dim Titre As String
                      
                      Set CelluleVise = Application.Intersect(Target, Range("B7:B30"))
                      
                      If CelluleVise Is Nothing Then
                          'MsgBox "La cellule n'est pas dans l'intersection"
                          DoEvents
                      Else
                          'MsgBox "La cellule est dans l'intersection"
                          DoEvents
                          Question = "Entrer un numéro de chèque s.v.p."
                          Titre = "Saisie du numéro de chèque"
                          Reponse = InputBox(Question, Titre, "100")
                          'Est-ce un nombre ? et est-il plus grand que 99
                          If ((Val(Reponse) <> 0) And (Val(Reponse) > 99)) Then
                              ActiveCell.Offset(0, 1).Value = NumCheque
                          End If
                      End If
                  
                  End Sub
                  
                  


                  Lupin