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 :

Erreur 91 lors saisie texte sous Word [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 71
    Points
    71
    Par défaut Erreur 91 lors saisie texte sous Word
    Bonjour à tous et toutes

    J'ai grace au forum réussi il y a quelques mois à créer un programme qui me permet de composer un document word depuis excel.

    J'essaye désormais de simplifier le code en faisant des appels de subs plutot que d'avoir de multiples "chapitres" a peu près similaires dans mon code.

    Lors de l'exécution de la sub ci dessous, j'ai une erreur de type 91, variable objet ou variable de bloc with non définie sur la ligne 9


    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
    Sub PrintTitreChapitre(ByVal n As String)
    Const wdStory = 6
    Const wdMove = 0
    Set objword = CreateObject("Word.Application")
    Dim objdoc As Word.Document
    Set objdoc = GetObject("e:\1 - aff\aa divers novorest\00 - gestion affaires\00 base\modeles\corps descriptif.doc")
     
    Set objselection = objword.Selection
    objselection.EndKey wdStory, wdMove
     
    Dim p1 As String
                    p1 = objdoc.Paragraphs.Count
                    With objdoc.Paragraphs(p1).Range
                        .Style = "Titre 2"
                    End With
     
                        objselection.TypeText "MATERIELS DE BUANDERIE" & Chr(10)
                        Dim p5 As String
                    p5 = objdoc.Paragraphs.Count
                    With objdoc.Paragraphs(p5).Range
                      .Font.Bold = False
                        .Style = "Normal"
                    End With
                    Dim p2 As String
                    p2 = objdoc.Paragraphs.Count
                    With objdoc.Paragraphs(p2).Range
                        .Style = "Normal"
                    End With
    J'ai a priori repris les mêmes éléments que ceux qui fonctionnent dans le programme de base.

    Merci de votre aide

    Daniel

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 71
    Points
    71
    Par défaut
    Bonjour

    Je continue mes recherches sur mon problème et ne trouve pas de solution
    J'ai deux codes simplifiés par rapport au 1er exemple : Celui ci dessous fonctionne parfaitement.

    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
    Sub PrintTitreChapitre2(ByVal n As String)
    Dim wordobj As Object
    On Error Resume Next
    Set wordobj = CreateObject("Word.Application")
    'Pour afficher Word
    wordobj.Visible = True
    'Ajoute un document
     wordobj.Documents.Add
     
    With wordobj.Selection
    .TypeParagraph
    .TypeText Text:="Titre de chapitre "
    .TypeParagraph
    .TypeText Text:="Daniel :o)"
    .TypeParagraph
    End With
    End Sub
    Mon souci est que je souhaite écrire dans un fichier word déjà ouvert

    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
    Sub PrintTitreChapitre2(ByVal n As String)
    Dim wordobj As Object
    On Error Resume Next
    Set wordobj = CreateObject("Word.Application")
    Set wordobj = GetObject("corps descriptif.doc")
    Set wordobj = GetObject("e:\1 - aff\aa divers novorest\00 - gestion affaires\00 base\modeles\corps descriptif.doc")
    'Pour afficher Word
    wordobj.Visible = True
    'Ajoute un document
     wordobj.Documents.Add
    With wordobj.Selection
    .TypeParagraph
    .TypeText Text:="Titre de chapitre "
    .TypeParagraph
    .TypeText Text:="Daniel :o)"
    .TypeParagraph
    End With
     
    End Sub
    J'ai essayé alternativement avec la ligne 5 ou 6, cela ne fonctionne pas

    Avez vous une piste ?

    Merci d'avance pour votre aide

    Daniel

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 71
    Points
    71
    Par défaut
    Toujours en train d'essayer de comprendre ce qui ne va pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub PrintTitreChapitre2(ByVal n As String)
    Dim wordDoc As Word.Document
    Set wordDoc = GetObject("e:\1 - aff\aa divers novorest\00 - gestion affaires\00 base\modeles\corps descriptif.doc")
    MsgBox wordDoc.Paragraphs.Count
    wordDoc.Selection.TypeText Text:="Procédure pour écrire dans Word "
    End Sub
    J'ai une erreur d'exécution 438 "Propriété ou méthode non gérée par cet objet" sur la ligne 5.

    Le fichier word est bien reconnu puisque la msgbox de la ligne d'avant me renvoie bien une réponse

    Je ne comprends pas car tous les exemples trouvés sur le net pour ecrire du texte dans word reprennent cette syntaxe

    Merci pour votre aide

    Daniel

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Je n'ai pas l'habitude de manipuler des documents Word via Excel mais ceci semble fonctionner
    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
    Sub test()
    'nécéssite d'activer la reference Microsoft word xx.x 0bject Library
    Dim Appli As Word.Application
    Dim WordDoc As Word.Document
     
    On Error GoTo Err '<-- au cas où le document Word n'est pas ouvert
    Set Appli = GetObject(, "Word.Application")
    Set WordDoc = Appli.Documents("e:\1 - aff\aa divers novorest\00 - gestion affaires\00 base\modeles\corps descriptif.doc")
    WordDoc.Activate '<-- au cas où plusieurs documents Word sont ouverts
    With Appli.Selection
        .TypeParagraph
        .TypeText "Ligne 1"
        .TypeParagraph
        .TypeText "Ligne 2"
    End With
     
    Exit Sub
     
    Err:
    MsgBox "Le document Word n'est pas ouvert"
     
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 71
    Points
    71
    Par défaut
    Bonjour Fring

    Merci beaucoup pour cette réponse

    Je la teste au plus vite

    Bonne journée

    Daniel

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

Discussions similaires

  1. Track change d'un texte sous Word amélioré
    Par christiansonge dans le forum VBA Word
    Réponses: 2
    Dernier message: 18/02/2009, 00h13
  2. Surlignage de text sous word
    Par mhido4 dans le forum Word
    Réponses: 2
    Dernier message: 16/06/2008, 23h24
  3. Module Access pour remplacer du texte sous Word.
    Par vcapron dans le forum VBA Access
    Réponses: 3
    Dernier message: 11/06/2008, 16h00
  4. Couleur Texte sous word
    Par dederfred dans le forum Delphi
    Réponses: 2
    Dernier message: 17/11/2006, 14h44
  5. Erreur 82 lors d'installations sous windows XP
    Par steeves5 dans le forum Windows XP
    Réponses: 2
    Dernier message: 14/12/2005, 17h33

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