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

Macros et VBA Excel Discussion :

Protéger une page Word depuis Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Février 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage

    Informations forums :
    Inscription : Février 2015
    Messages : 126
    Par défaut Protéger une page Word depuis Excel
    Bonsoir,
    Cela fais 2 heures que je cherche une solution à mon problème et je craque... J'ai besoin de votre aide!
    Je dois enlever une protection Word pour modifier son contenue mais lorsque je la réactive , aucune protection n'est présente sur la page..
    Pourtant aucun message d'erreur , rien ne se passe..
    Je pense que cela est tout bête mais je ne trouve pas.. Merci de votre aide !
    Voici mon code :
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
        Set WordApp = CreateObject("word.Application")
        With WordApp
     
             .Visible = True
              .WindowState = wdWindowStateMaximize
             RepertoireFichier = LeRep2
     
     
             Set WordDoc = .Documents.Open(RepertoireFichier & sNomDossier & ".docm") ' A adapter
             With WordDoc
     
     
            .Activate
             .Unprotect Password:="********"
     
                  If .Shapes.Count > 0 Then
                     For I = 3 To .Shapes.Count
                         If .Shapes(I).Type = 1 Then  ' Se reporter aux
                           With .Shapes(10) 'date
                                    .TextFrame.TextRange.Text = date2
     
                            End With
                            With .Shapes(11) 'n° inter
                                    .TextFrame.TextRange.Text = sNomDossier
     
                            End With
                             With .Shapes(12) ' site
     
                                    .TextFrame.TextRange.Text = chantier
     
                            End With
                             With .Shapes(13) 'ref
                                    .TextFrame.TextRange.Text = ref
     
                            End With
                             With .Shapes(14) 'client
                                    .TextFrame.TextRange.Text = client
     
                            End With
                            With .Shapes(15) 'numser
                                    .TextFrame.TextRange.Text = numser
     
                            End With
                            With .Shapes(16) 'marque
                                    .TextFrame.TextRange.Text = marque
     
                            End With
                            With .Shapes(9) 'produit
                                    .TextFrame.TextRange.Text = produit
     
                            End With
                            With .Shapes(8) 'contact
                                    .TextFrame.TextRange.Text = contact
     
                            End With
                             With .Shapes(7) 'adresse
                                    .TextFrame.TextRange.Text = adresse
     
                            End With
                             With .Shapes(6) 'site
                                    .TextFrame.TextRange.Text = site
     
                            End With
     
                         End If
                     Next I
                  End If
                  .Protect Password:="********", NoReset:=False, Type:= _
            wdAllowOnlyFormFields
               End With
     
     
     
             Set WordDoc = Nothing
         End With
         Set WordApp = Nothing

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Patouillou Voir le message
    Bonjour,

    A quel moment fermez-vous votre document ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             .Close savechanges:=True

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    ce passage de ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set WordApp = CreateObject("word.Application")
    donne à penser que tu travailles en liaison tardive (late binding)
    Si tel est le cas, la constante VBA/Word wdAllowOnlyFormFields est inconnue et donc = 0.
    Or (je viens d'aller le regarder dans l'aide VBA/Word, logiciel que je n'utilise personnellement pas) , 0 est la valeur de la constante VBA/Word wdAllowOnlyRevisions !
    Remplace donc wdAllowOnlyFormFields par sa valeur (2, selon ce que je vois dans l'aide VBA/Word)

    EDIT, dans le doute quant à l'utilisation des paramètres nommés (Type, Password, etc ...) je choisirais par ailleurs personnellement la notation "classique" de la syntaxe, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Protect 2, False, "mon_mot_de_passe"
    essaye

Discussions similaires

  1. Executer un script javascript d'une page web depuis excel
    Par Anthony1012 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/10/2017, 12h50
  2. Lancer une macro word depuis excel
    Par arnaud47000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/10/2015, 19h34
  3. Ouvrir une page web depuis excel - avec tuto interaction web
    Par fifi5622 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/12/2014, 23h03
  4. Piloter une page Web depuis Excel en VBA
    Par ilcocodrillo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/08/2008, 16h57
  5. coller une plage dans word depuis excel
    Par tarmin dans le forum VBA Word
    Réponses: 7
    Dernier message: 18/01/2006, 10h16

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