VBA if

Bonjour,

pouvez vous m'indiquer la faute dans la formule suivante:

If MsgBox("Date antérieur à aujourdhui", vbOKOnly, "impossible") = [Date] < [date_auj] = vbOKOnly Then
   Range("A1").Select
...

Else

Je souhaite que si la date est antérieur à celle d'aujourd'hui, une fenêtre s'ouvre avec le txt "date antérieur à aujourd'hui" et uniquement le choix de cliquer sur OK et que rien ne se passe.

Merci de votre aide

salutations

Bonsoir,

On ne sait pas comment on fait référence à la date : cellule nommée, variable ??? Donc dans ce qui suit, j'ai considéré que la date était contenue dans la cellule A1. A toi de faire les modifications nécessaires en fonction de ton fichier.

Sub VérifieDate()
Dim Vdate
Vdate = Range("A1").Value
If Vdate < Date Then
MsgBox "Date antérieure à aujourd'hui", vbOKOnly
Range("A1").Select
End If
End Sub

J'espère avoir répondu à ton problème... Si c'est le cas n'oublie pas de cocher [Résolu] dans la lucarne en bas à gauche.

Sinon Mytå risque d'être très très triste...

Et pas à cause de moi, car dans ce post, il y a du code, et une solution entière (enfin je crois vu les données que j'avais.) et pas de bla-bla. Enfin, je ne crois pas.

Cordialement,

V_Elbie

Bonsoir,

VElbie, écrite comme cela tu peux aussi te passer de mettre une variable en mettant

If range("A1") < Date then..

Amicalement

Dan

Merci Dan,

Je m'en doutais bien un peu, mais vu la demande, je ne savais pas où aller "piocher" la date, donc j'ai procédé en deux étapes. Mais c'est vrai que si on peut faire plus concis, c'est encore mieux.

Il est bien évidemment Inutile de faire du bla-bla dans le code de toute façon

Jojo95 pourra adapter la formule au mieux en fonction de ses données.

Amicalement,

V_Elbie

Salut,

Merci pour ton aide, malheureusement losrque je choisis date supérieur à aujourd'hui, il me met le même message. (date antérieur à aujourd'hui).

Voici mon code:

  Dim Vdate
Vdate = Range("C5").Value
If Vdate < ("D5") Then
MsgBox "Date antérieure à aujourd'hui", vbOKOnly
Range("A1").Select

Else
    Rows("2:2").Select
    Sheets("Consultation").Select
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown
..........etc

Merci

Re,

Sans le fichier d'origine, c'est pas toujours facile de voir comment les données sont structurées.

Si la cellule C5 contient la date d'aujourd'hui (sous forme de formule je suppose)

Si la cellule D5 contient la date à saisir...

Alors, le code suivant devrait fonctionner...

If [D5].Value < [C5].Value Then
MsgBox "Date antérieure à aujourd'hui", vbOKOnly
Range("A1").Select
End If

Si c'est le contraire, inverse les références des cellules ou change < en >.

Cordialement,

V_Elbie

re,

A essayer

If Range("D5") < Range("C5") Then
MsgBox "Date antérieure à aujourd'hui", vbOKOnly
Range("A1").Select '-->  instruction à enlever peut être
Else
Rows("2:2").Select --> instruction à enlever
Sheets("Consultation").Select
Rows("2:2").Insert Shift:=xlDown
End If

Certaine instructions ne servent à rien je pense. A toi de voir.

Dan

Hello,

La fenêtre apparait correctement mais elle s'affiche également lorsque la date est supérieur à aujourd'hui. Dans tous les cas elle s'affiche. Voici mon fichier, ça sera plus simple

https://www.excel-pratique.com/~files/doc/calendrier2.xls

Merci beaucoup et meilleures saluations

bonsoir,

ta ligne de code corrigée :

If Range("c5") < Range("d5") Then

amicalement

Claude.

Ok merci maintenant ça marche.

Merci encore

Rechercher des sujets similaires à "vba"