Macro calcul automatique entre 2 dates puis saisi automatisé

Y compris Power BI, Power Query et toute autre question en lien avec Excel
o
ordaz75
Membre habitué
Membre habitué
Messages : 79
Inscrit le : 5 août 2014
Version d'Excel : 2010 FR

Message par ordaz75 » 4 septembre 2014, 09:32

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
V1.xlsm
(22.54 Kio) Téléchargé 17 fois
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 413
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 4 septembre 2014, 10:05

Bonjour,

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

A+
:)
V1.xlsm
(19.66 Kio) Téléchargé 15 fois
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
o
ordaz75
Membre habitué
Membre habitué
Messages : 79
Inscrit le : 5 août 2014
Version d'Excel : 2010 FR

Message par ordaz75 » 4 septembre 2014, 10:12

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
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 413
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 4 septembre 2014, 11:13

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

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

A+
:)
Test Ordaz.xlsm
(20.48 Kio) Téléchargé 20 fois
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
o
ordaz75
Membre habitué
Membre habitué
Messages : 79
Inscrit le : 5 août 2014
Version d'Excel : 2010 FR

Message par ordaz75 » 4 septembre 2014, 11:29

cela ne fonctionne pas

J'ai essayé avec 2 dates totalement différentes pourtant... :(
v1.jpg
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 413
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 4 septembre 2014, 11:41

:roll:

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+
:)
Test Ordaz.xlsm
(17.7 Kio) Téléchargé 19 fois
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
o
ordaz75
Membre habitué
Membre habitué
Messages : 79
Inscrit le : 5 août 2014
Version d'Excel : 2010 FR

Message par ordaz75 » 4 septembre 2014, 11:52

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.jpg
o
ordaz75
Membre habitué
Membre habitué
Messages : 79
Inscrit le : 5 août 2014
Version d'Excel : 2010 FR

Message par ordaz75 » 4 septembre 2014, 12:13

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
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 413
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 4 septembre 2014, 12:21

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+
:)
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
o
ordaz75
Membre habitué
Membre habitué
Messages : 79
Inscrit le : 5 août 2014
Version d'Excel : 2010 FR

Message par ordaz75 » 4 septembre 2014, 12:45

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 :(
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message