IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Macro 2003 ne fonctionne pas sous 2007 [WD-2007]


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 13
    Points
    13
    Par défaut Macro 2003 ne fonctionne pas sous 2007
    Bonjour,

    J'ai un fichier de démarrage (site.dot) qui contient toutes les macros utilisées dans les modèles Word (templates).
    Tous ces fichiers ont été réalisé en Word 2003 et fonctionnent parfaitement.
    Certains postes sont en Word 2007 maintenant et lors du lancement du template, au moment où celui ci fait appel à la macro, j'ai le message d'erreur suivant:
    "Erreur d'exécution 5887.
    Commande non disponible car le document est protégé par un mot de passe."
    Or il n'y aucun mot de passe ni sur le site.dot ni sur les templates.

    Peut être ai-je une conversion à faire ou une référence à ajouter mais je ne vois pas laquelle.
    J'ai bien modifé les options word pour abaisser le niveau de sécurité et approuvé l'accès au modèle d'objet VBA mais sans succès.

    Merci d'avance de votre aide.

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Sans avoir la macro ou le document, c'est délicat de répondre. Cependant, une liaison des références (passages en 12.0) au lieu de 11.0 pour Office peut-être ou un objet qui n'existe plus sous la ersion 2007.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Merci pour ta réponse.
    Effectivement, la référence précédente concernait Office 11.0 et maintenant c'est Office 12.0

    Cependant, je travail freéquemment sur des modeles qui sont utilisés d'abord en 2003 puis en 2007 sans problèmes particuliers.

    La macro est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Sub Age()
    '
    ' Age Macro
    ' Macro enregistrée le 24/08/2001 par si
    'Modèles de gériatrie et de cs de pre anesthesie
     
    Dim Age, i, j As Integer
    Dim dtns, dtj As Date
    Dim signet As Bookmark
    Dim entry As AutoTextEntry
    Dim dtn As String
     
    ActiveDocument.Sections(2).ProtectedForForms = False
     
    For Each entry In ActiveDocument.AttachedTemplate.AutoTextEntries
        If entry.Name = "Patient.Naissance" Then dtn = entry.value
    Next entry
        If Month(dtn) < Month(Date) Then
            Age = DateDiff("yyyy", dtn, Date)
        Else
            If Month(dtn) = Month(Date) Then
                If Day(dtn) < Day(Date) Then
                    Age = DateDiff("yyyy", dtn, Date)
                Else
                    Age = DateDiff("yyyy", dtn, Date) - 1
                End If
            Else
                Age = DateDiff("yyyy", dtn, Date) - 1
            End If
        End If
    j = 1
    While j <= ActiveDocument.Content.Bookmarks.Count
      Set signet = ActiveDocument.Content.Bookmarks(j)
      If signet.Name = "age" Then
        signet.Range.Fields(1).Result.Text = Age
        'On sort de la boucle
        j = ActiveDocument.Content.Bookmarks.Count + 1
      Else
        j = j + 1
      End If
    Wend
     
    ActiveDocument.Sections(2).ProtectedForForms = True
     
    End Sub
    Le problème se situe peut être sur la fonction ProtecetedForms mais je n'ai rien trouvé de pertinent sur ce sujet.

    A noter que je ne suis pas l'auteur de la macro, je mets à jour une suite logicielle qui utilise ce modèle et les nouvelles stations de travail sont sour Office 2007.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    C'est une propriété qui est toujours disponible pour Word 2007.

    Mais il faut que tu aies au moins deux sections à ton document puique tu enlèves la protection de la seconde section.

    Si tu as plusieurs sections.
    Es-tu certain que la protection de cette section n'est pas faite avec un mot de passe ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Effectivement, j'ai vu que la fonction est toujours disponible sous Word 2007.
    J'ai bien une deuxième section dans mon document (même beaucoup plus )

    Cependant, ce que j'ai vu en utilisant les menus Word directement sur le document pour protéger une section, c'est qu'il demande tout le temps un mot de passe, même vide, peut être dois je envoyer un paramètre en plus du genre password="".
    Je vais tester ça mettrai le résultat sur dans la suite de cette discussion.

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Je n'ai pas trouvé de méthode pour envoyer un mot de passe en paramètre, cependant, si je commente les séquences de dé-protection et reprotection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ActiveDocument.Sections(2).ProtectedForForms = False
    ....
     
    ActiveDocument.Sections(2).ProtectedForForms = True
    Je n'ai plus de message d'erreur, la macro s'exécute et met à jour le champs concerné.

    Je passe donc la discussion à Résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro Excel 2003 ne fonctionne plus sous 2007/2010
    Par leloup84 dans le forum Général VBA
    Réponses: 0
    Dernier message: 13/11/2013, 19h41
  2. Macro sous Excel 2003 fonctionne pas sous Excel 2007 pourquoi
    Par Sherman750 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2012, 13h13
  3. Kill ne fonctionne pas sous 2007
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 31/07/2011, 07h50
  4. macro ne fonctionne pas sous 2007
    Par jijie dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/09/2008, 07h24
  5. Une fonction sous Excel 2007 ne fonctionne pas sous Excel 2003
    Par Dryss51 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/07/2007, 08h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo