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 :eek:
 

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
 

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla