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

3 réponses

  1. 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
  2. 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
    1. xoala
       
      Je voulais juste te remercier personnellement. C'est trop sympa de m'avoir répondu aussi vite

      A+
      Xoala
      0
      1. 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
  3. 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