Créer une fonction dans excel

Bonjour,

Je souhaiterais créer une fonction dans excel.
Cette fonction servirait à rendre obligatoire une saisie dans une cellule si une autre cellule a été renseignée.

Ex. Si cellule A1 renseignée alors cellule A7 doit être renseignée. Faire apparaitre un message qui indiquera ce qu’il faut renseigner.

J’espère avoir été claire sur mes besoins.
Merci d’avance à tous ceux qui vont pouvoir m’aider.

isathieb

:hello: Bonjour,

Alors la solution est assez simple :
Il faut appliquer une validation de données sur la plage de cellule, en partant de A1. Dans la règle de validation, changer “Autoriser --> Tout” par “Autoriser --> Personnalisé” et indiquer la formule suivante : =NBVAL(A7)

Ainsi, si A7 est vide il sera impossible de renseigner A1, obligeant les utilisateurs à renseigner A7.

Solution trouvée ici

Merci pour ta réponse mais elle ne correspond pas exactement à ce que je souhaiterais.

Mon tableau comporte une colonne A NOM, une colonne B PRENOM et une colonne F COMMUNE DE RESIDENCE.
Je souhaiterais rendre la saisie de la colonne F obligatoire, mais ce tableau ne sera pas forcément complété par la même personne, c’est pourquoi je voulais la condition si la cellule A4 contient un nom, alors la cellule F4 doit être obligatoirement saisi.

Est-ce possible ?

Merci d’avance.

De prime abord cela peu paraître bizarre car je raisonne à l’envers mais j’ai testé et cela fonctionne : En fait la saisie dans A4 ne sera possible QUE si la cellule F4 est renseignée, du coup cela oblige à renseigner F4 pour saisir A4.

Je vous ai envoyé un MP tout à l’heure, si ce que je pense s’avère exact ce serai plus pratique, sinon il faudrait que je vous mette un exemple à dispo.

Rendre obligatoire, pas facile, mais tu peux mettre un format conditionnel sur F4 de manière à faire apparaître par exemple un fond rouge lorsqu’elle est vierge alors que A4 est renseignée.

Bonjour,

J’ai testé votre solution mais malheureusement cela ne me convient pas. Je souhaite que la personne qui complète mon tableau n’oublie pas de saisir la commune de résidence. Je souhaiterai donc rendre la saisie de cette cellule (COMMUNE DE RESIDENCE) obligatoire à partir du moment ou la cellule NOM est remplie et non l’inverse.

Est-ce possible ?

C’est possible mais dans la foulée.
Dès qu’on a remplit A1 et validé, le pointeur se positionne dans A7 est demande (force) une entrée.

Mais pas :
Pierre rentre un nom dans A1, valide, ferme le fichier.
Plus tard, Bernard ouvre le fichier, et excel demanderait à remplir A7 correspondant…

Ce cas passe donc, selon mon expérience personnelle, forcément par une macro VBA : On teste toute la colonne A (en partant de A2) : Si la valeur de A <> “” on se positionne sur A7 et tant que la valeur de A7 = “” on affiche un message d’erreur en forçant l’utilisateur à renseigner la cellule.

Edit :
Plus précisément voici le code que j’ai utilisé :


Public Sub Worksheet_Change(ByVal Target As Range)
    Dim rng2 As Range
    
    If Target.Column = 1 Then
        If Target.Value <> "" Then
            Set rng2 = Range(Cells(Target.Row, Target.Column + 5), Cells(Target.Row, Target.Column + 5))
            rng2.Activate
            Do While (IsEmpty(rng2.Value))
                MsgBox ("Veuillez renseigner cette cellule")
                rng2.Value = InputBox("Commune ?")
            Loop
        End If
    End If
End Sub

Edité le 26/01/2015 à 13:18

C’est encore moi,

Je dois vraiment être “neuneu” mais je n’arrive pas à faire ce que vous avez proposé alors que cette solution semble me convenir… :-(:

Pouvez-vous m’aider ?

Merci d’avance.

Bonjour,

Avec la macro, on ne pas sortir si l’adresse n’est pas renseignée.
Je suis nul en vba, j’ai juste essayé !
Edité le 27/01/2015 à 12:30

:hello: Bonjour,

Il faut juste ouvrir l’éditeur VBA (ALT + F11) et copier / coller le code que j’ai indiqué en double-cliquant sur la feuille concernée par cette saisie (Exemple Feuil1 s’il s’agit de la première feuille).

De ce que j’ai compris c?était le but recherché, maintenant je peux me tromper.

Tu modifies les conditions de la boucle : tant que l’adresse est vierge et la cellule nom non vierge etc.
Ensuite, dans la boucle, à la sortie de l’input, si la réponse est vide, tu vides la cellule nom.

A mon avis c’est le seul cas (saisie d’un nom par erreur) où tu auras besoin de sortir sans renseigner l’adresse, d’après les conditions que tu as données

Voici quelque chose qui approche ce que tu veux.
Je suis sous LIbreOffice et pas Excel, mais c’est très voisin.
Ça peut sans doute être amélioré.
A toi de voir.
Supposons que :
la colonne A contient le NOM
la colonne F contient la COMMUNE

Je crée une colonne, H par exemple, qui contiendra le texte suivant, si A est rempli et F pas rempli :
IL EST OBLIGATOIRE DE REMPLIR LA COMMUNE

Bien entendu tu peux choisir le texte à afficher.

Dans la colonne H :
=SI(ET(ET(A1>=“a”;A1<=“z”);ET(OU(F1="";F1=" “)));“IL EST OBLIGATOIRE DE REMPLIR LA COMMUNE”;”")

Il suffit de faire un copier/coller de H1 vers toutes la colonne de H

Tu peux éventuellement mettre le texte en rouge.
Edité le 28/01/2015 à 10:33

Dans ce cas on force pas la saisie, on affiche juste avertissement ?

Je ne vois que l’utilisation des macros ou la fonction de validation des données pour obliger la saisie dans une cellule si une autre est renseignée.

D’accord avec toi, pitinonoz , c’est pourquoi je dis au début : quelque chose qui approche…

isathieb verra si ça lui convient ou pas… ou s’en inspirer pour aller plus loin.

C’est toujours bon de lancer des pistes.