Macro calcul automatique entre 2 dates puis saisi automatisé

Bonjour tout le monde !

Je recherche une macro qui pourrait m’afficher un MsgBox du type "Attention VR" après avoir effectué le calcul via la macro entre 2 dates.

Je m’explique :

Je saisi 2 dates dans mon tableau en E et en H, si la date en « E » est antérieure de 30 jours à la date en « H », je souhaiterais que le Msg box apparaisse « attention VR » puis que la mention VR soit saisi automatiquement en « G ». Dans le cas contraire la cellule reste vide en « G » et sans msg box.

Ci-joint la feuille de mon fichier en question avec 2 exemples de ligne type : une qui est « VR » et l’autre non

Merci d’avance pour votre aide

21v1.xlsm (22.54 Ko)

Bonjour,

Pour tester le fichier ci-joint, il suffit de modifier le mois de la cellule E4 ...

A+

17v1.xlsm (19.66 Ko)

Merci pour ta réponse James007 !

Mais je préfère m'orienter vers une macro car avec une fonction en SI cela ne fonctionnera pas car j'ai plusieurs macro sur mon fichier qui efface ma colonne G a chaque fois.. mais le principe est bien celui ci

OK ... pas de problème ...

Est-ce-que le fichier joint correspond mieux à ton attente ?

A+

22test-ordaz.xlsm (20.48 Ko)

cela ne fonctionne pas

J'ai essayé avec 2 dates totalement différentes pourtant...

v1

Etrange ... chez moi, cela fonctionne normalement...

As-tu des protections de sécurité pour les macros ...?

Je te joins à nouveau une copie du fichier ... à tester...

A+

21test-ordaz.xlsm (17.70 Ko)

Non pourtant j'ai aucune sécurité et j'active bien la macro mais cela ne fonctionne toujours pas. Si cela peut être utile je suis sur office 2010

v2

Bizarrement si je complète d'abord la colonne "H" puis la "E" cela fonctionne mais dans le sens normal non

Je ne vois pas l'erreur dans le code :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub

If Intersect(Target, Range("E2:E100")) Is Nothing Then Exit Sub

If IsEmpty(Target) Then Exit Sub

Target.Offset(0, 2).ClearContents

If (Target.Value - Target.Offset(0, 3).Value) < -30 Then

Target.Offset(0, 2).Value = "Attention VR"

MsgBox "Attention Nélio : le véhicule est une Reconversion"

End If

End Sub

Désolé ... mais perso, j'ai compris que le "sens normal" était la colonne H puis la colonne E ... puisque la restitution vient à la fin...

Est-ce que tu as besoin que je te modifie le code pour l'autre sens ... ou tu te sens capable de le faire tout seul ... ???

A+

Oui mais pour le coup le processus est dans l'autre sens lol...

Bah j'ai remplacé

If Intersect(Target, Range("E2:E100")) Is Nothing Then Exit Sub

par

If Intersect(Target, Range("H2:H100")) Is Nothing Then Exit Sub

Mais bien sur sa ne fonctionne pas lol, cela serait trop simple

OK ...

Je te propose de tester cette dernière version ...

A+

11test-ordaz.xlsm (16.45 Ko)

super c'est exactement cela !!!!!

Peux tu m'expliquer la signification du "0" et "-1" que tu a modifié je comprends pas la correspondance avec les colonnes en question

Target.Offset(0, -1).ClearContents

If (Target.Value - Target.Offset(0, -3).Value) > 30 Then

Target.Offset(0, -1).Value = "VR"

Merci beaucoup

Content que tu soies content ...!!!

Pour info, la fonction Offset(ligne,colonne) permet d'ajuster la position par rapport à la cellule Target ...

Donc Offset(0,-3) signifie : cellule 3 colonnes avant ...

et Offset(1,0) signifie : cellule 1 ligne dessous ...

A+

Merci pour l'info

bonne journée à toi

Rechercher des sujets similaires à "macro calcul automatique entre dates puis saisi automatise"