Tableau sous word
xoala
-
Profil bloqué -
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
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:
- Tableau sous word
- Tableau word - Guide
- Word 2013 - Télécharger - Traitement de texte
- Word et excel gratuit - Guide
- Espace insécable word - Guide
- Supprimer page word - Guide
3 réponses
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
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
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
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
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
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