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 Access Discussion :

Copier des pages d'un fichier Word dans un nouveau document word depuis Access


Sujet :

VBA Access

  1. #1
    Membre averti Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Points : 439
    Points
    439
    Par défaut Copier des pages d'un fichier Word dans un nouveau document word depuis Access
    Hello tout le monde,

    J'essai de copier des pages d'un document Word dans un nouveau document depuis access cependant j'ai cette erreur :

    Run-time error '13'
    Type mismatch


    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
     
    ' Variable global pour accéder à Word
    Public wdApp       As Word.Application
     
     
    Private Sub buttGo_Click()
     
     
        ' Initialisation des variables
        Set wdApp = CreateObject("Word.application")
        wdApp.Documents.Open ("U:\Desktop\Copy of file.doc")
     
        'Signet de début
        wdApp.Selection.GoTo What:=wdGoToPage, which:=wdGoToAbsolute, Count:=2
        wdApp.Selection.Bookmarks.Add Name:="bmStart", Range:=Selection.Range
     
        'Signet de fin
        wdApp.Selection.GoTo What:=wdGoToPage, which:=wdGoToAbsolute, Count:=4
        wdApp.Selection.Bookmarks.Add Name:="bmEnd", Range:=Selection.Range
     
        'sélection de la plage
        Dim myRange As Range
        Set myRange = ActiveDocument.Range(Start:=ActiveDocument.Bookmarks("bmStart").Range.Start, End:=ActiveDocument.Bookmarks("bmEnd").Range.End)
        myRange.Select
     
     
        'copie de la plage dans le presse papier
        wdApp.Selection.Copy
     
        ' fermer le document
        wdApp.Quit savechanges:=False
        Set objWord = Nothing
     
    End Sub
    Mon erreur est sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set myRange = ActiveDocument.Range(Start:=ActiveDocument.Bookmarks("bmStart").Range.Start, End:=ActiveDocument.Bookmarks("bmEnd").Range.End)
    J'ai également essayé de mettre ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set myRange = wdApp.ActiveDocument.Range(Start:=wdApp.ActiveDocument.Bookmarks("bmStart").Range.Start, End:=wdApp.ActiveDocument.Bookmarks("bmEnd").Range.End)
    Mais j'ai tjs la même erreur.

    Est ce que quelqu'un aurait une solution ?

    Merci d'avance

    P.S. J'ai bien importer Microsoft Word 11.0 Object Library

  2. #2
    Membre averti Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Points : 439
    Points
    439
    Par défaut
    Bon finalement j'ai trouvé la solution...

    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
     
    Private Sub buttGo_Click()
    On Error GoTo Erreur_Proc
     
        ' Variables Fichier Word
        Dim fileOpenWord  As String
        Dim fileSaveWord  As String
     
        ' Variables intervalles page Word à copier
        Dim pageStart  As Integer
        Dim pageEnd    As Integer
     
        ' Initialisation variables
        fileOpenWord = "U:\Desktop\file.doc"
        fileSaveWord = "U:\Desktop\file2.doc"
        pageStart = 2
        pageEnd = 4
     
        ' Ouverture fichier Word
        Dim WordApp As Word.Application
        Dim WordDoc As Word.Document
        Set WordApp = CreateObject("Word.application")
        Set WordDoc = WordApp.Documents.Open(fileOpenWord)
     
        ' Création du signet de début
        WordApp.Selection.GoTo What:=wdGoToPage, which:=wdGoToAbsolute, Count:=pageStart
        WordApp.Selection.Bookmarks.Add Name:="bmStart", Range:=WordApp.Selection.Range
     
        'Création du signet de fin
        WordApp.Selection.GoTo What:=wdGoToPage, which:=wdGoToAbsolute, Count:=pageEnd
        WordApp.Selection.Bookmarks.Add Name:="bmEnd", Range:=WordApp.Selection.Range
     
        ' Sélection de la plage (entre les 2 signets)
        Dim myRange As Word.Range
        Set myRange = WordDoc.Range(Start:=WordDoc.Bookmarks("bmStart").Range.Start, End:=WordDoc.Bookmarks("bmEnd").Range.End)
        myRange.Select
     
        ' copie de la plage dans le presse papier
        WordApp.Selection.Copy
     
        ' Création d'un nouveau document Word
        Dim WordApp2 As Word.Application
        Dim WordDoc2 As Word.Document
        Set WordApp2 = CreateObject("Word.Application")
        Set WordDoc2 = WordApp2.Documents.Add
     
        ' Copie le presse papier dans le nouveau document
        WordApp2.Selection.Paste
     
        ' Sauvegarde le document et l'affiche
        WordDoc2.SaveAs fileSaveWord
        WordApp2.Visible = True
     
    Exit_Proc:
     
        ' fermer les documents
        WordDoc.Close False
        WordApp.Quit savechanges:=False
        Set WordApp = Nothing
        Set WordDoc = Nothing
     
        Set WordApp2 = Nothing
        Set WordDoc2 = Nothing
        Exit Sub
     
    Erreur_Proc:
        MsgBox "Une erreur est survenue !?"
        Resume Exit_Proc
    End Sub
    Se serait bien de le mettre dans la FAQ non ?

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

Discussions similaires

  1. [XL-2010] Copier des onglets d'un fichier source vers un nouveau classeur + autres boucles
    Par P4nd0r3 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/04/2015, 18h14
  2. [PowerShell] copier des donner d'un fichier txt dans un tableau excel
    Par jihed-hajji dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 15/01/2013, 14h54
  3. Réponses: 5
    Dernier message: 10/08/2012, 15h29
  4. [XL-2003] copier des informations d'un fichier xls dans un autre fichier xls
    Par ironfalcon dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 23/03/2010, 13h39
  5. Réponses: 10
    Dernier message: 19/06/2006, 19h04

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