Cellules à remplir obligatoirement

Rebonjour tout le monde,

voiçi un fichier qui prépare un programme type de saisie.

https://www.excel-pratique.com/~files/doc/saisie_typepourforum.xls

Dans le feuille "saisie" (cliquez sur le bouton pour y accéder), j'ai verrouillé toutes les cellules sauf celles qu'il faut remplir (colonne c). Mon objectif est qu' aucune de ces cellules ne puissent être vides.

Je cherche la formule de validation de données qui me fournira cette obligation de remplissage. (validation données- personnalisé- ...), avant d'intégrer un message d'obligation.

D'avance merci,

cordialement à tous

Elfi

Bonjour,

en tête de la macro Sub validerlasaisie

    If Application.WorksheetFunction.CountA(Range("i3:bb3")) < 10 Then  'contrôle les lignes saisies
        MsgBox ("Données incomplètes !")
     Exit Sub
    End If

tu remplace <10 par le nombre d'entrées souhaité.

Claude.

édit: oublié Exit Sub

Claude,

j'ai compris ton approche mais ce n'est pas ce que je cherche à faire. En fait, l'objectif est de travailler par "palier". Ainsi, il faut que la cellule C7 soit obligatoirement remplie avant d'accéder à la C9, et ainsi de suite. Je ne suis pas sûr qu'un complément de code soit indispensable mais si tu as une idée en VBA, elle sera la bienvenue.

Malgré tout, merci de t'intéresser au sujet,

Bien cordialement,

Elfi

Salut Plabrousse!

Je vois que mon petit fichier fait des bébé!

C'est sympa de fouinner pour m'aider,!

Pour revenir à l'approche de Claude, celà me convindrait.

il faut juste que le Msgbox arrive uniquement lorsque je n'ai pas rempli certaine cellule, en l'occurence seulement, 4, qui n'appartiennes pas forcément à la même colonne.

Il faudrait en fait qu'à la validation de la saisie, le message box me dise où il me manque des informations (de une case non remplies à toutes).

le MsgBox peut il varier en fonction de cet argument?

re,

Tu peux essayer çà , qui t'alerte à la cellule non renseignée.

Sub ValidSaisie()
Dim i As Byte
    Application.EnableEvents = False
    Range("c7").Select
        For i = 1 To 23
            If ActiveCell = "" Then
                MsgBox ("La saisie de : " & ActiveCell.Offset(0, -1) & "  n'est pas renseignée !")
                Exit Sub
            End If
                ActiveCell.Offset(2, 0).Select
        Next i
    Application.EnableEvents = True
End Sub

Claude.

Claude,

Sitôt dit, sitôt fait

c'est super. C'est exactement ce que je voulais.

Merci mille fois,

bien cordialement

Elfi

Salut le forum,

J'enchaine sur ce qui vient d'être dit

Le code ci dessus m'a beaucoup aidé, tout fonctionne.

j'ai cependant à un moment donné une petite variante : lorsque je choisis la choix "autres" dans ma liste, j'aimerais que si la personne oubli de saisir à la main les informations, qu'un message arrive, mais mon code ne fonctionne pas dans ce cas :

Range("B17").Select
                If ActiveCell = "Autres :"
                AndIf
'la cellule qui doit etre rempli à la main est juste à coté                

Range("C17") = " "
                Then
                MsgBox ("N'oubliez pas de saisir qui à appelé")
                Exit Sub
            End If

Ai-je oublié quelque chose de fondamentale?

merci!

Bonjour,

J'ai cru comprendre que la saisie est en C17

    With Range("c17")
        .Select
            If ActiveCell.Offset(0, -1) = "Autres :" Then
        .Value = ""
            MsgBox ("N'oubliez pas de saisir qui à appelé")
            Exit Sub
            End If
    End With

Claude.

OK, c'est génial, ça fonctionne.

Le petit problème c'est, quand an B17, je choisi "autres", et que je ne rempli rien à la main dans C17, le MsgBox, arrive, super

Seulement, à la validation de la saisie, vue que j'ai toujours "autres" en B17, ben c'est un cycle sans fin, il me demandera toujours d'entrer queslque chose.

Il faudrai une ligne de code du genre :

"et si en C17 = la valeur est différente de "", alors c'est bon "

je ne vois pas comment faire. Le différent de (ou le égal barré) je ne sais si c'est possible.

merci beaucoup en tout cas!

re,

Et qu'est-ce qui remettra "Autres :" ?

Ce serait peut-être mieux avec un InputBox,

Envoie ta macro complète, qu'on regarde.

Claude.

OK, j'ai refais toute ma procédure en allégée (ultra allégée), mais tout est identique à ce que j'ai

https://www.excel-pratique.com/~files/doc/procedure_simplifiee.xls

tout est expliqué dans la feuille saisie

dis moi si tu vois des axe de progression, et si mes soucis sont résolvables?!

Merci!

EDIT : est-il possible d'avoir une condition sur un format de saisie? J'aimerais qu'une date soit saisie à la main, et si le format jj/mm/aa n'est pas respecté, un MsgBox me le dit? (je n'utilise pas de formule =maintenant(), car je dois parfois dans ma procédure entrer des informations passée, révolues. (peut on aussi, augmenter la taille de la police dans le MsgBox. merci!

Bonjour à tous,

Tu affecte à la liste déroulante cette macro :

Sub choix()
    With Range("c6")
        .Activate
        .ClearContents
    End With
End Sub

et à la fin du code "Valider" (pour remettre la liste à 1)

Range("saisie!f4") = 1

Bonne journée

Claude.

Salut à tous,

Salut Claude.

je viens seulement d'essayer ton code, il fonctionne parfaitemement, tout à fait ce qu'il me fallait,

merci!

bonjour tout le monde,

la réponse à ce sujet répond en partie à ce que je cherche

en fait, j'ai utilisé le fichier partagé en changeant le nom des cellules mais je veux une aide pour résoudre un problème.

en fait le code

Dim i As Byte
    Application.EnableEvents = False
    Range("c7").Select
        For i = 1 To 23
            If ActiveCell = "" Then
                MsgBox ("La saisie de : " & ActiveCell.Offset(0, -1) & "  n'est pas renseignée !")
                Exit Sub
            End If
                ActiveCell.Offset(2, 0).Select
        Next i
    Application.EnableEvents = True

bloque la validation si pas de champ renseigner, est ce que possible dépasser ou de ne pas faire ce controle sur 2 champs

voilà en PJ je veux que ce controle pour les 2 champs ne s'applique que si CA>10000000

et je veux des contrôles sur le format des champs du tableau (colonne numérique avec 2 décimales) notamment le champ montant

aussi si le champ existant de cadeau à Oui alors les autres champs suivant doivent obligatoire

si quelqu'un peut aider

svp

Rechercher des sujets similaires à "remplir obligatoirement"