Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

msgbx déclenché lorsque évènement précis

E

Esther

Guest
Bonjour,

Je tiens un fichier Excel sur lequel notamment deux cellules cote à cote sont à saisir: une date de débbut de période et une date de fin de période. La cellule suivante calcule le nombre de jour total de la période.
Afin de controler la saisie, je voudrais qu'un message apparaisse si la période totale est négative ou excède 360 jours (message serait 'Saisie à contrôler').

J'ai ce type de macro, trouvée sur votre site:
Private Sub Controlesaisie(ByVal Target As Excel.Range)
If Target.Address = Range('I8:I477').Address Then
If Target.Value <= 0 Then
MsgBox 'Erreur de saisie !'
End If
End If
End Sub
Mais ca ne marche pas ! Quelles sont les boulettes ? ESt-ce parce que j'ai collé cette macro dans 'module1' au lieu de sheet 1 ?

Merci beaucoup
Esther
 

CBernardT

XLDnaute Barbatruc
Bonsoir Esther,

Je te propose ce type de macro évènementielle à placer dans le module de feuille.

Dans cette macro, la cellule date début est la cellule A1, la cellule date fin est la cellule B1 et la cellule résultat est la celule C1. Il suffit d'adapter à ton cas.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A1:B1')) Is Nothing Then
If Range('C1') <= 0 Or Range('C1') > 360 Then
MsgBox 'Erreur de saisie !'
End If
End If
End Sub

Cordialement

Bernard
 
E

Esther

Guest
Bonjour Bernard,

Ca marche !! Mais le problème c'est que mon fichier fait 480 lignes environ et que la personne qui saisie des factures insère des lignes autant de fois qu'elle a de facture et ce pas forcément sur la première ligne. Il faudrait que le message s'applique pour toute la plage de la ligne 1 à la ligne 480. Mais lorsque je change la formule en lui indiquant une plage des cellule il bloque.

Comment faire ?

Merci merci
Esther
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…