XL 2016 Message d'erreur si cellule non rempli

MissSayra

XLDnaute Nouveau
Bonjour,

Excusez moi je ne suis pas très douée avec Excel et surtout avec les macro, je suis entrain de créer un formulaire pour m'aider à faire la facturation.
Sauf que trop souvent les collaborateurs oublie de me remplir le montant à facturer.
J'aimerai que à partir du moment ou ils me rentrent une prestation à facturer, ils soient obligé de me rentrer un montant sinon un message d'erreur s'affiche.

En vous remerciant,
 

Pièces jointes

  • FACTURATION.xlsx
    17.5 KB · Affichages: 9

job75

XLDnaute Barbatruc
Bonjour MissSayra, bienvenue sur XLD,

Votre fichier ne permet de savoir comment doit s'organiser le projet.

Le but du forum n'est pas de créer un projet mais de résoudre des problèmes ponctuels.

Donc avancez dans votre projet et venez ici quand vous rencontrez un problème.

A+
 

MissSayra

XLDnaute Nouveau
Bonjour MissSayra, bienvenue sur XLD,

Votre fichier ne permet de savoir comment doit s'organiser le projet.

Le but du forum n'est pas de créer un projet mais de résoudre des problèmes ponctuels.

Donc avancez dans votre projet et venez ici quand vous rencontrez un problème.

A+
Bonjour Je ne comprends pas votre message le fichier est bien créer, je bloque juste sur comment faire le message d'erreur " montant obligatoire !" si la case montant est vide à partir du moment ou la cellule prestation est rempli, je vous ai mit un exemple.
 

Pièces jointes

  • FACTURATION.xlsx
    18.2 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bon si vous n'avez aucune idée sur la méthode à appliquer en voici 2.

1) Par formule avec cette formule matricielle en C2 :
Code:
=SIERREUR("Entrez le montant en D"&EQUIV(1;(C6:C10000<>"")*ESTVIDE(D6:D10000);0)+5;"")
2) Par VBA avec cette macro dans le code de la 1ère feuille :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Range("c6:C" & Rows.Count), UsedRange)
If r Is Nothing Then Exit Sub
For Each r In r
    If r <> "" And Not IsNumeric(CStr(r(1, 2))) Then
        Application.EnableEvents = False 'désactive les évènements
        r(1, 2).Select
        Application.EnableEvents = True 'réactive les évènements
        MsgBox "Entrez le montant en " & ActiveCell.Address(0, 0)
        Exit For
    End If
Next
End Sub
A+
 

Pièces jointes

  • FACTURATION formule(1).xlsx
    19.7 KB · Affichages: 6
  • FACTURATION VBA(1).xlsm
    26.7 KB · Affichages: 7

MissSayra

XLDnaute Nouveau
Bon si vous n'avez aucune idée sur la méthode à appliquer en voici 2.

1) Par formule avec cette formule matricielle en C2 :
Code:
=SIERREUR("Entrez le montant en D"&EQUIV(1;(C6:C10000<>"")*ESTVIDE(D6:D10000);0)+5;"")
2) Par VBA avec cette macro dans le code de la 1ère feuille :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Range("c6:C" & Rows.Count), UsedRange)
If r Is Nothing Then Exit Sub
For Each r In r
    If r <> "" And Not IsNumeric(CStr(r(1, 2))) Then
        Application.EnableEvents = False 'désactive les évènements
        r(1, 2).Select
        Application.EnableEvents = True 'réactive les évènements
        MsgBox "Entrez le montant en " & ActiveCell.Address(0, 0)
        Exit For
    End If
Next
End Sub
A+
Je vous remercie !
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 335
Membres
103 523
dernier inscrit
mounir2025