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 :

Enregistrer une image en tant que fichier séparé [WD-2019]


Sujet :

VBA Word

  1. #1
    Membre du Club
    Homme Profil pro
    Cadre technique en BE
    Inscrit en
    Juillet 2021
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre technique en BE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 87
    Points : 52
    Points
    52
    Par défaut Enregistrer une image en tant que fichier séparé
    Bonjour à toutes et tous .
    je voudrais tout bêtement faire à ceci :
    https://support.microsoft.com/fr-fr/...1-d10e4e3ea715
    en vba .

    La méthode existe pour Publisher (voir code ci-après), mais je n'ai pas trouvé l'équivalent en vba Word

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisDocument.Pages(1).Shapes(1).SaveAsPicture "filename.jpg"
    Je vous remercie par avance.

  2. #2
    Membre du Club
    Homme Profil pro
    Cadre technique en BE
    Inscrit en
    Juillet 2021
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre technique en BE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    D'après ce que j'ai pu trouver, on peut se servir d'un document Publisher pour exporter ensuite l'image.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub EnregistrerEnTantQuImage()
    Dim oDocPub            As Publisher.Document  'ne pas oublier de charger la lib Publisher ;-)
    Const NOM_IMAGE = "C:\MonChemin\MonImage.jpg"
    Set oDocPub = New Publisher.Document
     
    ActiveDocument.InlineShapes(1).Range.CopyAsPicture
    oDocPub.Pages(1).Shapes.Paste
    oDocPub.Pages(1).Shapes(1).SaveAsPicture NOM_IMAGE, pbPictureResolutionDefault
    oDocPub.Pages(1).Shapes(1).Delete
    End Sub
    Je clôture cette discution, n'hésitez cependant pas à l'enrichir, notamment si vous avez une solution plus simple...
    Merci.

  3. #3
    Membre du Club
    Homme Profil pro
    Cadre technique en BE
    Inscrit en
    Juillet 2021
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre technique en BE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Bonjour.
    Je me permets de relancer cette discussion car j'ai toujours un souci pour exporter les images d'un document Word.
    L'export fonctionne, mais certaines images obtenues sont tronquées.
    Petite subtilité : je précise que j'exporte des contenus de cellules de tableaux sous forme d'images (s'il s'agit d'images contenues dans un document Word, et non des contenus de cellules de table, aucun problème d'image tronquée)

    voici le code correspondant :

    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
    Sub CreationImagesDetail_Version_DPC()
     
    Dim oWordApp                    As Word.Application
    Dim oWordDoc                    As Word.Document
    Dim oTable                      As Word.Table
    Dim oDocPub                     As Publisher.Document  'ne pas oublier de charger la lib Publisher ;-)
     
    Dim sCheminCour                 As String
    Dim sNomJPG                     As String
    Dim iTableau                    As Integer
    Dim dHauteur                    As Double
    Dim dLargeur                    As Double
    Dim sID                         As String
     
        sCheminCour = CurrentProject.Path & "\"
        Set oWordApp = CreateObject("word.application")
        oWordApp.Visible = False    'Word reste masqué pendant l'opération
     
        Set oWordDoc = oWordApp.Documents.Open(sCheminCour & "Topic_DPC\2024_03_16\MonDoc.docx", , False)       'ouvre le document Word pas en lecture seule
        Set oDocPub = New Publisher.Document 'sert de "presse-papier"
     
        'parcours des tableaux du doc
        For iTableau = 1 To oWordDoc.Tables.Count
            'copie du contenu de la cellule
            oWordDoc.Tables(iTableau).Cell(2, 2).Range.CopyAsPicture
     
            'collage dans Publisher pour pouvoir exporter ensuite
            oDocPub.Pages(1).Shapes.Paste
     
     
            'Création nom image
            sID = oWordDoc.Tables(iTableau).Cell(1, 1).Range.Text
            sID = Left(oWordDoc.Tables(iTableau).Cell(1, 1).Range.Text, Len(sID) - 2) & "_"
            sNomJPG = sCheminCour & "Topic_DPC\2024_03_16\Images\Image_" & sID & iTableau & ".jpg"
            'export
            oDocPub.Pages(1).Shapes(1).SaveAsPicture sNomJPG, pbPictureResolutionDefault
     
            'suppression images template
            oDocPub.Pages(1).Shapes(1).Delete
        Next iTableau
     
        oDocPub.Close
        oWordDoc.Close (False)  'fermeture document Word sans sauvegarde
        Set oWordDoc = Nothing
     
        Set oDocPub = Nothing
        oWordApp.Quit    'fermeture session Word
        Set oWordApp = Nothing
    End Sub
    Autre précision : je code depuis Access ( l'application réalise d'autres tâches…).

    Ci-joint un bon exemple de document à traiter si vous voulez tester le code:
    MonDoc.7z

    J'ai essayé de redimensionner image comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            '----------------agrandissement de l'image dans Publisher----------------
                dHauteur = oDocPub.Pages(1).Shapes(1).GetHeight(pbUnitPoint)
                dLargeur = oDocPub.Pages(1).Shapes(1).GetWidth(pbUnitPoint)
                '----------------le code suivant provoque l'erreur en question----------------
                oDocPub.Pages(1).Shapes(1).Height = dHauteur * 2
                oDocPub.Pages(1).Shapes(1).Width = dLargeur * 2
                '-----------------------------------------------------------------------------
            '----------------fin agrandissement de l'image dans Publisher------------
    ...cela provoque une erreur :
    Nom : Capture d'écran 2024-03-16 090837.png
Affichages : 27
Taille : 8,1 Ko

    Merci pour votre aide

  4. #4
    Membre du Club
    Homme Profil pro
    Cadre technique en BE
    Inscrit en
    Juillet 2021
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre technique en BE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 87
    Points : 52
    Points
    52
    Par défaut Solution
    Bonjour.

    A insérer entre les lignes 23 et 24 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oWordDoc.Tables(iTableau).AutoFitBehavior (wdAutoFitWindow)
    Cordialement.

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

Discussions similaires

  1. [Toutes versions] Enregistrer chaque page en tant que fichier PDF séparé avec des noms du doc
    Par Mikitars20 dans le forum VBA Word
    Réponses: 8
    Dernier message: 19/02/2021, 09h48
  2. Réponses: 5
    Dernier message: 11/02/2012, 13h05
  3. Enregistrer une image dans un fichier texte
    Par rvdth dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/05/2009, 13h02
  4. Enregistrer une image dans un fichier XML
    Par MiJack dans le forum Delphi
    Réponses: 12
    Dernier message: 24/05/2006, 10h24
  5. ENREGISTRER UNE IMAGE OU UN FICHIER .DOC
    Par manudja dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/08/2005, 13h32

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