Rendre la saisie d'une cellule obligatoire

Bonjour,

J'ai un fichier que je dois modifier dans le cadre de mon travail.

Je m'explique, lors d'un incident un agent doit remplir une fiche et l'envoyer par email en cliquant sur un bouton avec une macro.

J'ai trouvé une macro qui m'aide à rendre la saisie de la cellule B3 (par exemple) obligatoire avant l'enregistrement de la fiche.

Ce que je voudrais, c'est modifier cette macro de sorte à ce que l'agent soit obliger de renseigner la cellule B3 avant de cliquer sur le bouton pour l'envoyer par email et non pas avant enregistrement.

Voici ma macro :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If Cells(13, 13).Value = "" Then

MsgBox "Merci de compléter la désignation de l'installation"

Cancel = True

End If

End Sub

Mon bouton je l'ai renommé envoi_email peut être peut-on mettre sur la macro l'équivalent de "avant de cliquer sur le bouton" au lieu de "beforesave" mais je ne sais pas comment faire.

Je ne sais pas si je me fais bien comprendre.

Merci d'avance pour votre aide.

Cordialement,

Merci pour la réponse mais j'ai une demande spécifique donc le lien que tu m'as donné ne résout pas mon problème.

Cordialement,

Re,

Tu peux essayer de jouer sur la propriété Visible de ton bouton (contrôle).

Si B3 non vide, affichage du bouton, sinon...

Cdlt.

Bonjour,

ou bien tester B3 au début de la macro du bouton.

eric

Bonjour,

Je vous remercie pour vos réponses.

Le problème c'est que j'ai peur qu'en affichant le bouton que si c'est rempli, les agents l'envoi manuellement et donc sans remplir les cases obligatoire.

N'y a-t-il pas une solution pour afficher la msg box quand on clique sur le bouton envoi au lieu de l'afficher en voulant enregistrer la fiche?

Merci de votre aide.

Bonjour,

Je pense que le plus simple est de vous transmettre mon fichier.

Le but étant d'obliger la personne à remplir toutes les cellules en jaune et j'ai également notifié quelques infos.

quelqu'un pourrait-il m'aider svp?

Bonjour,

Sélectionner toutes tes cellules obligatoire (sauf K47) et nommer la plage 'Obligatoires' et :

Sub mail()
    Dim c As Range, nb As Long

    For Each c In [Obligatoires]
        If c.Value = "" Then nb = nb + 1
    Next c
    If [K47] = "" And ([W44] = "autre service" Or [W44] = "PRS directe") Then nb = nb + 1
    If nb > 0 Then MsgBox "Il manque " & nb & " champs obligatoires": Exit Sub
    ' envoi mail
    ' ...
End Sub

eric

eriiic a écrit :

Bonjour,

Sélectionner toutes tes cellules obligatoire (sauf K47) et nommer la plage 'Obligatoires' et :

Sub mail()
    Dim c As Range, nb As Long

    For Each c In [Obligatoires]
        If c.Value = "" Then nb = nb + 1
    Next c
    If [K47] = "" And ([W44] = "autre service" Or [W44] = "PRS directe") Then nb = nb + 1
    If nb > 0 Then MsgBox "Il manque " & nb & " champs obligatoires": Exit Sub
    ' envoi mail
    ' ...
End Sub

eric

MERCI Eric,

Vraiment un grand merci c'est exactement ce que je voulais

Une dernière question, peut-on programmer les adresses emails dans la macro?

Les destinataires seront toujours les mêmes.

Merci encore pour ton aide

Oui mais c'est une autre question indépendante..

Passe en résolu celle-ci en cochant le post adéquat et démarre un nouveau fil.

eric

Rechercher des sujets similaires à "rendre saisie obligatoire"