Appel aux experts VBA !!

Fermé
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 - 28 mai 2009 à 14:39
 le père - 29 mai 2009 à 12:13
Bonjour tt le monde,

Voici mon problème:

sur la feuille excel une colonne est intitulée: "date de début de travaux" et on y renseigne la semaine concernée (par exemple: s24 pour semaine 24)
on se doit de prévenir le client et d'afficher sur le lieu du chantier 1 feuille annoncant les travaux 2 semaines avant le début prévu (soit ici prévenir par courrier et aller afficher en semaine 22 -> s22)
peut on faire un système envoyant un pop up sur l'écran du PC automatiquement 2 semaines avant le débt de chantier de facon à ne pas oublier de le faire?! je pense que cela se fait mais je ne sais pas comment donner un mm repère entre cette histoire de numéro semaine et la date que connaît le PC...

Merci par avance pour votre aide, bonne journée!!

PS: j'ai fais ca mais j'ai une erreur que je ne comprends pas:

Private Sub Workbook_Open()
Dim texteCherche As String, message As String, celluleRecherche As Range, zoneRecherche As Range, lAdressePremCell As String

'initialiser le texte à chercher ("s24" si on est en semaine 22)
texteCherche = "s" & CStr(Application.WorksheetFunction.WeekNum(Now) + 2)

ERREUR ICI:erreur d''exécution 438ropriété ou méthode non gérée par cet objet......je sais pas ce que ca veut dire!


'initialiser la zone de recherche (colonne F)
Set zoneRecherche = ThisWorkbook.Sheets("Feuil1").Range("F:F")

message = "Penser à envoyer courrier pour annoncer le début des travaux :" & vbNewLine

'lancer la recherche
Set celluleRecherche = zoneRecherche.Find(texteCherche, , xlValues, xlWhole)
'si rien n'est trouver, quitter la procédure
If celluleRecherche Is Nothing Then Exit Sub
'sinon, mémoriser l'adresse de la première cellule trouvée
lAdressePremCell = celluleRecherche.Address
'boucler ...
Do
'traiter la cellule de recherche

'ajouter une ligne au message
message = message & vbNewLine & "chantier """ & celluleRecherche.Offset(0, -5) & ", " & _
celluleRecherche.Offset(0, -4) & ", " & celluleRecherche.Offset(0, -3) & """"

'rechercher la cellule suivante
Set celluleRecherche = zoneRecherche.FindNext(celluleRecherche)
'... tant que la cellule de recherche n'est pas revenu à la première cellule trouvée
Loop Until celluleRecherche.Address = lAdressePremCell
Set celluleRecherche = Nothing

MsgBox message
End Sub


J'ai vraiment besoin de vous, merci par avance, bonne journée !!

4 réponses

tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 6
29 mai 2009 à 09:07
un petit up a tt hasard si quelqu'un saurait me dépatouiller !!
0
Bonjour

En ce qui concerne ton message d'erreur, c'est très simple, la propriété WeekNum n'existe pas. En tous cas, pas en VBA d'Excel 2003.
0
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 6
29 mai 2009 à 10:14
Bjr, merci d'avoir pris le temps de lire mon post!!

Je ne savais pas que cette commande n'existe pas !! auriez vous une solution à me proposer car je seche.......

Merci!!
0
Je ne savais pas que cette commande n'existe pas Un tuyau : la commande wxcfrzt n'existe pas non plus ;-) n'essaye pas de l'utiliser
Tu avais une erreur sur cette ligne, pourquoi ne pas avoir regardé toi même ? Quand tu tapes ta ligne, VBA te propose les fonctions autorisées, pourquoi en inventer une qui n'est pas dans la liste ?
Pour ton calcul de semaine, je n'ai rien de tout cuit à proposer, mais tu peux toujours calculer le jour de l'année, tenir compte du jour de la semaine sur lequel tombe le 1er janvier, diviser par 7 et ajouter l'âge du capitaine... Pas passionnant à faire, mais pas difficile non plus, ça reste de l'arithmétique très basique si tu sais comment sont définis les numéros de semaine. Et pour savoir comment ils sont définis, tu vas bien trouver ça sur internet.
0