Macro / module excel

Résolu
jharde Messages postés 98 Statut Membre -  
jharde Messages postés 98 Statut Membre -
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. Lupin
     
    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
    0
  2. Lupin
     
    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
    0
  3. jharde Messages postés 98 Statut Membre 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"
    0
  4. Lupin
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jharde Messages postés 98 Statut Membre 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.
    0
  7. jharde Messages postés 98 Statut Membre 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+
    0
  8. Lupin
     
    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
    0
  9. jharde Messages postés 98 Statut Membre 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+
    0