Macro / module excel

Résolu/Fermé
jharde Messages postés 98 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 4 juin 2008 - 28 déc. 2005 à 11:59
jharde Messages postés 98 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 4 juin 2008 - 30 déc. 2005 à 16:45
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.
A voir également:

8 réponses

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
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
jharde Messages postés 98 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 4 juin 2008 1
28 déc. 2005 à 17:38
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jharde Messages postés 98 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 4 juin 2008 1
29 déc. 2005 à 08:50
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
jharde Messages postés 98 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 4 juin 2008 1
29 déc. 2005 à 09:07
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
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
jharde Messages postés 98 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 4 juin 2008 1
30 déc. 2005 à 16:45
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