message d'erreur si une cellule n'est pas rempli

  • Initiateur de la discussion Initiateur de la discussion jem
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jem

XLDnaute Junior
Bonjour à tous,

Je voudrais savoir si c'est possible de générer un message d'erreur ou une alerte dès qu'une cellule n'est pas rempli? Par exemple, quand je rajoute une ligne, je voudrais que la personne qui tape inscrive la date de ce rajout dans la colonne d'à côté, et si la personne ne le fait pas et veut passer à une autre feuille, un message apparait. j'espère que je ne me suis pas trop mal exprimée 🙂

Je vous remercie,

JEM
 
Re : message d'erreur si une cellule n'est pas rempli

bonsoir fanfan,

Je te joins un fichier avec un exemple.
Comme tu verras, j'ai 3 problèmes que je n'arrive pas résoudre :s
J'espère que tu seras éclairé par mon exemple,

MERCI beaucoup

JEM
 
Re : message d'erreur si une cellule n'est pas rempli

Bonsoir,

Concernant mon problème de message, j'ai pensé à aller sur données>validation>et là je tape un message d'alerte. Cela fonctionne mais à une condition que la personne clique sur la cellule concernée sinon il ne verra rien du tout! Vous avez d'autres solutions à me proposer?

Je vous remercie,

JEM
 
Re : message d'erreur si une cellule n'est pas rempli

Bonsoir,
tu pourrais aussi insérer la date automatiquement
Il suffit de saisir l'évènement "Change" de la feuille
Si quelqu'un écrit dans une de tes zones nommées, la date du jour s'inscrira automatiquement...
Regarde le fichier joint, et change dans les zones "metz" et "villejuif"

Le code (A compléter pour les zones):

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union([metz], [villejuif])) Is Nothing Then _
    Target.Offset(0, 1) = Date
End Sub
 

Pièces jointes

Re : message d'erreur si une cellule n'est pas rempli

Bonsoir,

Ton exemple fonctionne très bien et c'est ce qu'il me faut, mais comme je débute en macro, je ne comprend pas comment il sait qu'il faut qu'il mette une date à la colonne date? Est ce que tu as défini au préalable le "Target", et "Target.Offset(0, 1) = Date" concrètement ça donne quoi? je suis vraiment nul en macro et VBA :s

J'ai recopié ton code dans le fichier du boulot mais ça ne donne rien :s je dois omettre quelques paramètres avant d'écrire le code, mais je ne sais pas quoi.

Merci beaucoup de m'aider

JEM
 
Re : message d'erreur si une cellule n'est pas rempli

Re-,
la ligne :

Code:
Target.Offset(0, 1) = Date

t'inscrit automatiquement la date dans la cellule de droite de la cellule modifiée.
Pour que le code écrive dans cette cellule, il faut que la cellule modifiée fasse partie d'une des zones nommées : "metz" et "villejuif" dans mon exemple
Tu avais mis des noms dans ton fichier, il suffit de les mettre dans le code :

Code:
If Not Intersect(Target, Union([COLOR="Red"][metz], [villejuif][/COLOR]))
 
Re : message d'erreur si une cellule n'est pas rempli

En fait, par comparaison du fichier exemple et de mon fichier de travail, jai dans la page de code a gauche "Propriétés-Feuil5" dans le fichier exemple, alors que dans mon fichier de travail j'ai "Propriétés-Module 1", et dans la barre au milieu, j'ai dans mon fichier de travail "général" au lieu de "worksheet" et à côté j'ai "worksheet_change" au lieu de "change"! Est ce que c'est à cause de ça que ça ne marche pas dans mon fichier de travail? Comment dois- je faire pour avoir "Propriétés-Feuil" au lieu de "propriétés-module"?

Merci de votre aide

JEM
 
Re : message d'erreur si une cellule n'est pas rempli

Re-,
quand tu es sur ton onglet, fais un clic droit sur le nom de l'onglet (en bas), puis clique sur visualiser le code
tu as alors une feuille blanche, le code de ta feuille
colle le code que je t'ai fourni, et essaie
Il faut que tes zones soient nommées ("metz", "villejuif",.........)
 
Re : message d'erreur si une cellule n'est pas rempli

Je te remercie infiniment pour ton aide, ça marche 🙂 je suis contente 🙂

Je vais pouvoir le présenter à mon tuteur, il sera content 🙂

Merci merci beaucoup

Bonne nuit à tous

JEM
 
Re : message d'erreur si une cellule n'est pas rempli

Bonjour,

Je me suis rendu compte en appliquant le code à mon travail que mon problème est à moitié résolu 🙁 En fait, dans mon code, j'ai beaucoup d'arguments "Union [],[]" , je dois en avoir 39! et des que j'insere une ligne, il me génére un message d'erreur disant: "Erreur de compilation: Nombre d'arguments incorrect ou affectation de propriété incorrecte". et il met en noir "Union" puis colorie en jaune "Private Sub Worksheet_Change(ByVal Target As Range)" . Comment je peux faire pour pallier à ce nouveau problème et pour m'accepte tous mes arguments?

Merci

JEM
 
Re : message d'erreur si une cellule n'est pas rempli

Bonjour,
et si tu définissais autrement tes données?
Par exemple, mettre toutes les villes en colonne A et en colonne D
ainsi, on n'aurait plus que les colonnes A et B à surveiller....
Regarde le fichier joint
 

Pièces jointes

Re : message d'erreur si une cellule n'est pas rempli

Merci bhbh pour le code il fonctionne à merveille 🙂 mais je ne comprend pas trop ce que ça veut dire!!

"If Target.Count = 1" :ça fait quoi exactement?

"Target.Column = 1 Or Target.Column = 17 Or Target.Column = 33) And Target.Row > 25" : ça j'ai compris, si je rajoute une ligne dans la colonne 1, 17 et 33, et à partir de la ligne 25 , alors

" Target.Offset(0, 14) = IIf(Target <> "", Date, "")": il mettra la date dans la 14 eme colonne se trouvant à droite de la colonne 1, 17 ou 33,

mais "IIf(Target <> "", Date, "")", je n'ai pas compris cette expression 🙁

Et le fait de mettre:
"Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

"
à la suite du code, ça fait quoi?

Je te remercie pour ton aide précieuse

JEM
 
Re : message d'erreur si une cellule n'est pas rempli

Re-,

Code:
If Target.Count = 1

Si la sélection ne compte qu'une seule cellule : par exemple, si tu insères une ligne, le code ne fonctionnera pas (normal)

Code:
Target.Offset(0, 14) = IIf(Target <> "", Date, "")

Iif agit comme la fonction SI d'une feuille
donc si la cellule modifiée contient une valeur (n'est pas vide), la date est inscrite.
Si cette cellule est vide (donc, elle a été effacée), la date est supprimée

pour le code vide du dessous, ce n'est rien, j'ai oublié de l'effacer
Lorsque tu veux écrire dans un code de feuille, tu cliques sur la flèche de gauche, en haut, ou est marqué "Général", et tu sélectionnes "Worksheet"
Par défaut, VBA te mets ce code....
Si ce n'est pas celui-là que tu veux, tu sélectionnes un autre avec la flèche de droite.
Donc j'ai oublié de l'effacer....😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
228
Réponses
5
Affichages
377
Retour