Tableau sous word

xoala -  
 Profil bloqué -
bonjour,
je cherche à parcourir un tableau word, et plus précisement une colonne et comparer la date de chaque cellule avec la date actuelle. Ensuite, si la difference entre les date est inferieur à 30 jour, je voudrais afficher un message d'alerte. Cette macro doit pouvoir demmarrer automatiquement au demarage du document word.

Merci d'avance pour le coup de main
Xoala
A voir également:

3 réponses

Profil bloqué
 
Sub autoOpen()
Dim myRange As Range
' définition d une variable de type range
For i = 2 To ThisDocument.Tables(1).Rows.Count
' car je suppose que la première ligne est
' réservée pour l'entête du tableau
' si tu veux commencer par la première
' ligne changes le 2 en 1
Set myRange = ThisDocument.Tables(1).Cell(Row:=i, Column:=1).Range
myRange.SetRange Start:=myRange.Start, End:=myRange.End - 1
' pour supprimer un caractère de la fin et prendre uniquement
' les 10 premiers caractères
If DateDiff("d", CDate(myRange.Text), Date) < 30 Then MsgBox ( _
"attention sur la " & i & " ème ligne la différence est de " & _
Str(DateDiff("d", CDate(myRange.Text), Date)) & " jours")
' calculer la différence en jours (d pour days)
' si cette différence est supérieure à 30 jours
' affichage de la boite de messages pour alerte
Next i
End Sub
0
Profil bloqué
 
salut mon Xoala

tu dois nommer cette macro AutoOpen pour qu'elle s'exécute automatiquement au démarrage du document
mais attention, si tes paramètres de sécurité sont trop élevés aucune macro ne pourra s'executer.
dans ce cas changes les paramètres de sécurité à moyen (OUtils - options- sécurité)

si tu as d'autres questions n'esite pas les poser dans ce poste
time is not money, time is life
0
xoala
 
Je voulais juste te remercier personnellement. C'est trop sympa de m'avoir répondu aussi vite

A+
Xoala
0
Profil bloqué > xoala
 
de rien
juste une précision : j'ai met tables(1) parceque c'est le premier tableau dans mon fichier word , pour parcourir les autres tableaux il faut faire tables(2) , tables(3) , ....
même chose pour les colonnes : column(1), column(2), ...

time is not money, time is life
0
Profil bloqué
 
Sub autoOpen()
Dim myRange As Range
For i = 2 To ThisDocument.Tables(1).Rows.Count
Set myRange = ThisDocument.Tables(1).Cell(Row:=i, Column:=1).Range
myRange.SetRange Start:=myRange.Start, End:=myRange.End - 1
If DateDiff("d", CDate(myRange.Text), Date) < 30 Then MsgBox ( _
"attention sur la " & i & " ème ligne la différence est de " & _
Str(DateDiff("d", CDate(myRange.Text), Date)) & " jours")
Next i
End Sub

time is not money, time is life
0