Comparaison de date et message d'erreur Excel

[Résolu/Fermé]
Signaler
-
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
-
Bonjour à tous,
Je dispose d'un fichier au sein duquel ma colonne B et ma colonne C sont remplis de dates.
J'aimerai faire en sorte que les dates de la colonne B ne puissent être postérieures à celles de la colonnes C (En clair, si j'ai le 15 juin 2010 dans ma colonne C, je voudrai faire en sorte que la date saisie dans la cellule en face dans la colonne B ne puisse être qu'antérieure au 15 juin 2010)
Reste à savoir par quel biais passer (Msgbox, Alerte d'erreur dans Validation des données...)

J'attends vos réponses avec impatience! et bonne journée !

N'hésitez pas à me signaler si je manque de clarté !

1 réponse

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
Bonjour,
Je passerais par la validation de données.
1- Sélectionner la colonne B en entier (clic sur "B")
2- Données / Validation (excel<2007)
3- Autoriser : choisir "Dates"
4- Données : choisir "inférieure à"
5- Date de fin : taper : =C1
6- OK
Ce fera la validation automatiquement pour toutes les cellules de la colonne B :
B1<C1, B2<C2, B3<C3 etc...
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
je les intègre à l'ai d'un calendrier? Il y a un code avec ce dit calendrier? Si oui lequel?
J'ai honteusement pompé un code VBA sur un forum qui ma foi m'apporte une pleine satisfaction.
Je te poste le code en question :

Private Sub Calendar1_Click()
ActiveCell.Offset.Value = Calendar1.Value
Calendar1.Visible = False


End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 1 And Target.Column < 4 And Target.Row > 2 Then
' Si la cellule sélectionnée est dans la plage qu'on veut lier au calendrier,
' on affiche le calendrier
Calendar1.Visible = True
' Place le calendrier à côté de la cellule
Calendar1.Top = ActiveCell.Top
Calendar1.Left = ActiveCell.Left + ActiveCell.Width
Else
' Sinon, on masque le calendrier
Calendar1.Visible = False
End If
End Sub
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
Tout d'abord félicitons Eriiic pour cette macro, très bien faite.
Ensuite, remplace :
Private Sub Calendar1_Click() 
ActiveCell.Offset.Value = Calendar1.Value 
Calendar1.Visible = False 
End Sub 

Par :
Private Sub Calendar1_Click()
If ActiveCell.Column = 2 Then
    If ActiveCell.Offset(0, 1).Value <> "" Then
        If Calendar1.Value > ActiveCell.Offset(0, 1).Value Then
            MsgBox "Merci de ne saisir que des dates inférieures à la colonne C"
            Exit Sub
        Else
        ActiveCell.Offset.Value = Calendar1.Value
        Calendar1.Visible = False
        End If
    Else
    ActiveCell.Offset.Value = Calendar1.Value
    Calendar1.Visible = False
    End If
Else
    If ActiveCell.Offset(0, -1).Value <> "" Then
        If Calendar1.Value < ActiveCell.Offset(0, -1).Value Then
            MsgBox "Merci de ne saisir que des dates supérieures à la colonne B"
            Exit Sub
        Else
        ActiveCell.Offset.Value = Calendar1.Value
        Calendar1.Visible = False
        End If
    Else
    ActiveCell.Offset.Value = Calendar1.Value
    Calendar1.Visible = False
    End If
End If
End Sub
Je ne sais pas quoi dire.
Tu m'as scotché, c'est tout bonnement génial, très lisible et parfaitement réalisé.
Je te suis grandement reconnaissant ! (et le mot est faible) et je te remercie bien chaleureusement de faire profiter de tes connaissances en informatique à des gens tels que moi !

Encore merci beaucoup !
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
de rien. Reviens quand tu veux...