Partage
  • Partager sur Facebook
  • Partager sur Twitter

VBA programmation heure

1 octobre 2018 à 19:12:29

Bonjour,

J'ai besoin de votre aide s'il vous plait ! 

J'ai un projet à réaliser et je suis bloqué sur un point. Je travaille sur un macro et je dois faire en sorte que : 

Si la date saisie dépasse 30 jours alors un MsgBox s'affichera "Veuillez vérifier votre date s'il vous plait".

Pour cela, j'ai utiliser la fonction "Now", j'ai l'habitude de travailler avec un petit macro pour vérifier le programme avant de l'insérer dans le gros. Donc voici le petit programme. 

Sub test()

today = Now
MsgBox today

today2 = Mid(today, 4, 2)

n = Cells(1, 1).Value
m = Mid(n, 1, 2)

If (m > today + 30) Then
    MsgBox ("Erreur")
End If


End Sub


Le soucis c'est ça : If (m > today + 30) Then . Enfaite j'arrive pas à trouver la condition qui fait que si la date entrée dépasse 30 jour Alors .... Par exemple nous somme le 01/10/18, si l'utilisateur entre 03/11/18, un message dois s'afficher. 

Avez vous une solution les amis ? 

Merci d'avance ! 

  • Partager sur Facebook
  • Partager sur Twitter
1 octobre 2018 à 20:44:00

Merci pour ta réponse mais enfaite ce n'est pas ce que je recherche.

J'ai modifier le code et j'ai trouver une condition qui fonctionne : 

If (mois <> today3 And jour > today2) Then
    MsgBox ("Erreur")
End If

En gros, si le mois saisie est différent du mois actuel et le jour saisi est supérieur au jour actuel, alors message d'erreur. Ce qui fais bien +30j alors erreur. 

Ceci fonctionne pour 30 jour mais je voudrai maintenant faire 60 ou 90 jours.. Et la je suis bloqué o_O

  • Partager sur Facebook
  • Partager sur Twitter
1 octobre 2018 à 21:09:29

D'où l'intérêt de DateDiff. ;)

Je ne sais pas comment sont saisies les dates dans tes cellules, mais en gros:

Sub test()
 
today = Now
today2 = Mid(today, 1, 10)

n = Cells(1, 1).Value	'A modifier
m = Mid(n, 1, 2)	'A modifier	
 
diff = DateDiff("d", today2, "24/11/2018")	'Remplacer 24/11/2018 par la valeur de la cellule sous cette forme

If (diff > 30) Then
    MsgBox ("Erreur")
Else
    MsgBox ("Il n'y a que " & diff & " jours de différence entre la date saisie et aujourd'hui")
End If
 
 
End Sub

-
Edité par Blaster13 1 octobre 2018 à 21:10:13

  • Partager sur Facebook
  • Partager sur Twitter
1 octobre 2018 à 22:02:20

J'ai compris ! Je te remercie vraiment l'ami ! 

Seule petite chose que j'ai du ajouter, le format de la date est déjà défini : JJMMAA  

j, m, an, correspondent au valeur saisie. 

today = j & "/" & m & "/" & "20" & an

Ce qui donne : 

diff = DateDiff("d", Now, today)

Le top, cette fonction est super utile, je suis partit trop loin avec les conditions :lol:

Bonne soirée et merci encore :) 

  • Partager sur Facebook
  • Partager sur Twitter