Rechercher : dans
Par :

! VBA détecter n° semaine et prévenir avant !

Dernière réponse le 1 jun 2009 à 14:46:39 tony020422, le 29 mai 2009 à 09:13:19 
 Signaler ce message aux modérateurs

Bonjour amis forumistes,

je suis face a un gros pb de programmation Excel...et seuls vous pouvez m'aider!!

pour faire simple, j'ai un fichier ou les débuts de travaux sont planifiés par numéro de semaine dans une colonne
(exemple: début le 25Mai --> on mettra s22 (pour semaine 22) dans la colonne)
J'aimerais arriver a faire en sorte qu'un pop up apparaisse 2 semaines avant la semaine indiquée de début de travaux pour que l'on n'oublie pas d'envoyer les documents necessaires........

Je ne sais pas comment faire!! j'ai essayé
Application.Evaluate("=TODAY()")) + 2 mais j'ai une erreur 438 qui apparait.... comment savoir quelle semaine sommes nous et declencher le pop up 2 semaines avant celle indiquéd dans mon fichier ?!

Merci bcp pour votre aide, je ss super coincé!!

Bonne journée::

Configuration: Windows 2003 Internet Explorer 6.0

Meilleures réponses pour « ! VBA détecter n° semaine et prévenir avant ! » dans :
[VBA] Détection de modification de cellule Voir Exemple pour une MFC avec plus de 3 conditions. Private Sub Worksheet_Change(ByVal Target As Range) Dim Cel As Range For Each Cel In Target 'Adapter la/les plages. If Not Intersect(Cel, Range("B1:B30,D1:D30")) Is Nothing...
Prévention de l'Exécution des Données VoirParamétrer ou désactiver la Prévention d'Exécution des Données (PED) Depuis le SP2 de Windows XP (Vista inclus), une nouvelle gestion de la mémoire (mode No eXecute) a été ajoutée, elle permet aux processeurs Athlon 64 d'AMD de protéger le système...
Passer de Vista à XP VoirVous avez acheté un nouveau PC avec Vista et Vista ne vous plaît pas pour diverses raisons. Ne vous précipitez pas à installer XP, vous risquez d'avoir de mauvaises surprises. Avant d'entreprendre quoi que ce soit Créer les DVD ou CD de...
Télécharger Avant-Browser VoirAvant Browser est un navigateur offrant les fonctionnalités suivantes : RSS Stockage du profil de l'utilisateur en ligne Auto-complétion des formulaires Bloqueur de publicité
Systèmes de détection d'intrusion (IDS) VoirIntroduction aux systèmes de détection d'intrusions On appelle IDS (Intrusion Detection System) un mécanisme écoutant le trafic réseau de manière furtive afin de repérer des activités anormales ou suspectes et permettant ainsi d'avoir une action de...
Systèmes de prévention d'intrusion (IPS) VoirIPS Les éditeurs et la presse spécialisée parlent de plus en plus d’IPS (Intrusion Prevention System) en remplacement des IDS « traditionnels » ou pour s’en distinguer. L’IPS est un Système de Prévention/Protection contre les intrusions et non...

1

Bidouilleu_R, le 29 mai 2009 à 10:32:50

Bonjour essaye comme ça!
a placer dans un module sino utilise No.semaine ou weeknum suivant la version


Public Function Semaine(date1 As Date) As Integer
Dim Sem As Integer
Sem = Int((date1 - DateSerial(Year(date1), 1, 1) + _
((Weekday(DateSerial(Year(date1), 1, 1)) + 1) _
Mod 7) - 3) / 7) + 1
If Sem = 0 Then
Sem = Semaine(DateSerial(Year(date1) - 1, 12, 31))
ElseIf a = 53 And (Weekday(DateSerial(Year(date1), 12, 31)) - 1) _
Mod 7 <= 3 Then
Sem = 1
End If
Semaine = Sem
End Function

Sub test()
x = Semaine(Date)
End Sub

Répondre à Bidouilleu_R

2

tony020422, le 29 mai 2009 à 10:46:14

Bjr !! merci de t'etre penché sur la question.....

donc ton script je le met dans le module 1, sachant que j'ai comme script dans Feuil1:

'macro qui s'exécute à chaque fois qu'il y a un changement sur une des cellules de la feuille
'"Target" représente la cellule qui a changé
Private Sub Worksheet_Change(ByVal Target As Range)
'si c'est la cellule B5 qui a changé
If Target.Column = 5 Then
'si la cellule n'est pas vide
If Target.Text <> vbNullString Then
'afficher le message
MsgBox "n'oubliez pas de facturer pour régulariser la situation 2"
End If
End If
End Sub

permettant de prévenir de fiare qqch qd la cellule de la colonne 5 est remplie....

et ds thisworkbook je met rien?

pr tester ton script, faudrait que lorsque je mette s25 qqch ds la colonne F rien ne se passe mais lorsque je mette s24 il m'affiche ce qu'il faut car on est actuellement en s22!

Répondre à tony020422

3

Bidouilleu_R, le 29 mai 2009 à 11:23:34

Je n'ai pas toutes les infos donc c'est difficile.

dans thisworbook il faudrait faire un test à l'ouverture

Private Sub Workbook_Open()
'je lance la macro de teste


End Sub

ce que je t'ai fournis te donne la semaine actuelle sous forme numérique.

il faut donc que tu teste tes cellules ( mais je ne sais pas lesquelles)

par exemple sur cette structure
je n'ai pas tout tester car je n'ai pas de données.


sub testsemaine()
la semaine=Semaine(date)
dim c as variant
dim s as integer
dim r as variant

for each c in range("f1:F1000") ' ajuster
s=val(mid(c.value,2,len(c.value)-1) 'on supprime le s et on convertit en valeur
if s >lasemaine +2 then
' rien à faire c'est du boulot dans 3 semaine ou plus

else
'c'est à faire ou déjà fait
r= msgbox("Il faut vérifier ou preparer ce travail " & C.address & " en " & c.value)
endif

next

end sub

Répondre à Bidouilleu_R

4

tony020422, le 29 mai 2009 à 11:29:23

Ok j'ai bien coompris merci le bidouilleuR c'est super sympa!!!! ce que tu me proposes va vraiment me sauver!!

C'est vraimennt kool, tu me depatouilles bcp!

Mille merci, bonne journée ensoleillée!!

Répondre à tony020422

5

Bidouilleu_R, le 29 mai 2009 à 13:17:54

Pas de problème

si tu souhaites améliorer ça peut se faire..

Bonne journée ... ensoleillée.
A++

Répondre à Bidouilleu_R

6

tony020422, le 29 mai 2009 à 14:26:36

Ca marche super!!

par contre pourrais tu m'expliquer la provenance de tes calculs ? car je ne sais pas du tout à quoi cela correspond !

Répondre à tony020422

7

Bidouilleu_R, le 29 mai 2009 à 14:46:21

Heu!

j'ai gratté du clavier...

j'ai eu besoin à une époque .. de calculer les semaines et les jours féries ^^ .

donc pour le calcul de la semaine j'ai utilisé principalement "dateserial" ( vba)
car pour excel une date est est nombre particulier.
weekday et le reste mid , mod (modulo) etc sont des fonctions de vba.
je te conseille le site de VBFRANCE et si tu es perspicaces tu y retrouveras certains amis de CCM. ; )

lis le tutorial de vba , je le trouve très bien pour commencer.

A+

je dois partir.
si tu as besoin d'autres explication je te répondrais

Répondre à Bidouilleu_R

8

tony020422, le 29 mai 2009 à 14:55:44

Ok pas de souci merci pr tt!!

bonne journée, @ bientôt !!

Répondre à tony020422

9

Bidouilleu_R, le 30 mai 2009 à 10:14:21

J'ai pensé à ton soucis.

Un bon site pour commencer ou pour continuer

http://excel.developpez.com/cours/

A+

Répondre à Bidouilleu_R

10

tony020422, le 1 jun 2009 à 14:10:14

Bonjour tout le monde,

j'ai eu une idée que je ne sais pas programmer.....

j'aimerais que lorsque je mette dans la colonne I intitulée "date de fin de travaux" un numéro de semaine (planification) comme par exemple "s25" un pop up apparaisse lorsque l'on sera effectgivement en semaine 25 pr me prévenir de penser a facturer.....

J'espère que vous comprenez ce que j'aimerais faire ;-)

Merci par avance pr le coup de main !!

Répondre à tony020422

11

 tony020422, le 1 jun 2009 à 14:46:39

Solution trouvée !!!

peu académique certes mais ca marche....... !!

Répondre à tony020422