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

Word Discussion :

Copier-coller d'images depuis Excel vers Word vertical - horizontal


Sujet :

Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Juillet 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Juillet 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Copier-coller d'images depuis Excel vers Word vertical - horizontal
    Bonjour à tous,

    c'est mon premier post ici, j'espère que je poste ma question dans la bonne section !

    Mon entreprise est passée depuis peu sous Office 2016 (nous avions la version 2007 avant), et cela me pose quelques problèmes au niveau de la mise en forme de certains de mes documents:

    Je réalise des fichiers type "catalogue" sur Excel puis sur Word.
    J'avais réussi à faire une macro afin de récupérer des images disponibles à partir de liens hypertexte, que j'insère sur une colonne:

    Nom : Images excel.JPG
Affichages : 1145
Taille : 36,8 Ko

    puis je sélectionnais ces images, et je faisais un copier-coller simple, ce qui me donnait ceci:

    Nom : images word.JPG
Affichages : 1054
Taille : 31,9 Ko

    Mais, depuis que je suis passé sur Word 2016, le copier-coller me donne un résultat vertical:

    Nom : images word verticales .JPG
Affichages : 1140
Taille : 36,6 Ko

    Après tout, ce résultat est plutôt logique, mais me fait vraiment perdre du temps puisque c'est une action que je répète assez souvent.

    y a-t-il un paramètre spécifique que je dois modifier ?

    Question subsidiaire: Depuis pas mal de temps, je cherche un moyen de rendre le passage entre Excel et Word automatique, le publipostage est-il un moyen approprié ? (Les 2 éléments texte sur mon 2ème screen sont contenus dans des cellules Excel) Si non, le meilleur moyen est-il de passer par une macro ? ou bien un logiciel tiers ?

    Par avance, merci !!

    Florent

  2. #2
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 224
    Points : 443
    Points
    443
    Par défaut
    Bonjour Florent et bienvenue, le forum,

    Le changement de comportement est étrange...
    À tout hasard, regarde du côté de l'option Insérer/coller les images voir si en changeant sa valeur tu retrouves le comportement souhaité.
    Tu trouveras cette option dans la section Couper, copier et coller des Options avancées de Word.

    A+

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Mais pourquoi faire du copier-coller à partir d'Excel quand tu peux insérer ton image dans Word directement ?
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Juillet 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Juillet 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    @mromain merci de la réponse ! effectivement c'était un endroit plutôt logique pour ce genre de problèmes, malheureusement aucune valeur ne permet de changer le comportement du copier coller :/

    @clementmarcotte merci de la réponse si je n'ai pas fait coller l'image dans le document word directement, c'est parce que je m'y connais vraiment très peu en VBA...J'ai récupéré une macro déjà toute faite sur Internet que j'ai certes bidouillée un peu mais je ne serais pas capable de la modifier au point de totalement automatiser mon processus :/ mais j'y travaille activement ! d'ailleurs le message à la fin de mon premier post fait référence au fait que je cherche une solution

    Bonne journée à tous les 2 !!
    Florent

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

    Quel est ton code ?

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Juillet 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Juillet 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    voici la macro:


    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    Sub LinkToImage()
    For Each cel In Selection
    cel.Offset(0, 1).Select
    cel.Offset(0, 1).RowHeight = 100
    cel.Offset(0, 1).ColumnWidth = 20
    If URLValid(cel.Value) = 0 Or HttpExists(cel.Value) = 0 Then
    cel.Offset(0, 1).Value = "Photo non dispo"
    Else
    Set Image = ActiveSheet.Pictures.Insert(cel.Value)
    With Image
    .ShapeRange.LockAspectRatio = msoTrue
    .Width = cel.Offset(0, 1).Width
    .Height = cel.Offset(0, 1).Height
    .Left = cel.Offset(0, 1).Left
    .Top = cel.Offset(0, 1).Top
    End With
    End If
    Next cel
    ActiveSheet.Shapes.SelectAll
        Selection.Placement = xlMoveAndSize
    End Sub
    Function URLValid(url As String) As Boolean
    If InStr(url, "png") > 0 Then
    URLValid = True
    ElseIf InStr(url, "jpg") > 0 Then
    URLValid = True
    ElseIf InStr(url, "jpeg") > 0 Then
    URLValid = True
    ElseIf InStr(url, "bmp") > 0 Then
    URLValid = True
    Else
    URLValid = False
    End If
    End Function
    Function HttpExists(ByVal sURL As String) As Boolean
    Dim oXHTTP As Object
    Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
    On Error GoTo haveError
    oXHTTP.Open "HEAD", sURL, False
    oXHTTP.send
    HttpExists = IIf(oXHTTP.Status = 200, True, False)
    Exit Function
    haveError:
    Debug.Print Err.Description
    HttpExists = False
    End Function
    Sub LinkToImage()
    For Each cel In Selection
    cel.Offset(0, 1).Select
    cel.Offset(0, 1).RowHeight = 100
    cel.Offset(0, 1).ColumnWidth = 20
    If URLValid(cel.Value) = 0 Or HttpExists(cel.Value) = 0 Then
    cel.Offset(0, 1).Value = "Photo non dispo"
    Else
    Set Image = ActiveSheet.Pictures.Insert(cel.Value)
    With Image
    .ShapeRange.LockAspectRatio = msoTrue
    .Width = cel.Offset(0, 1).Width
    .Height = cel.Offset(0, 1).Height
    .Left = cel.Offset(0, 1).Left
    .Top = cel.Offset(0, 1).Top
    End With
    End If
    Next cel
    ActiveSheet.Shapes.SelectAll
        Selection.Placement = xlMoveAndSize
    End Sub
    Function URLValid(url As String) As Boolean
    If InStr(url, "png") > 0 Then
    URLValid = True
    ElseIf InStr(url, "jpg") > 0 Then
    URLValid = True
    ElseIf InStr(url, "jpeg") > 0 Then
    URLValid = True
    ElseIf InStr(url, "bmp") > 0 Then
    URLValid = True
    Else
    URLValid = False
    End If
    End Function
    Function HttpExists(ByVal sURL As String) As Boolean
    Dim oXHTTP As Object
    Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
    On Error GoTo haveError
    oXHTTP.Open "HEAD", sURL, False
    oXHTTP.send
    HttpExists = IIf(oXHTTP.Status = 200, True, False)
    Exit Function
    haveError:
    Debug.Print Err.Description
    HttpExists = False
    End Function
    Merci de votre aide !

    Je vous joins un exemple de fichier si ça peut éclairer !

    Florent
    Fichiers attachés Fichiers attachés

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Malabarmitzva Voir le message
    Je peux vous donner un exemple de fichier si vous le souhaitez.

    Bonjour,

    Oui, je veux bien.

    Nb : C'est le fichier Word qui m'intéresse avec les photos positionnées verticalement.
    Dernière modification par Invité ; 13/07/2018 à 10h27.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Juillet 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Juillet 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    vous trouverez un exemple de fichier brut, sur lequel j'applique la macro que je vous ai transmis ci-dessus (LinkToImage), qui me donne un fichier avec les images (que je ne peux pas mettre en , images que je récupère (pour les lignes en rouges, donc dans la colonne enjeu *** ou ****), que je colle ensuite dans le fichier word.

    Les fichiers word sont anciens donc les images venaient s'insérer normalement dessus, mais j'ai rééssayé en ouvrant le document sous word 2016 et cela me re-colle les images en vertical (j'ai fait un doublon de la première page pour rendre ça plus compréhensible).

    J'espère que mes explications sont assez claires :/

    NB: j'ai du mettre des extraits des fichiers car ils étaient trop gros sinon .
    Fichiers attachés Fichiers attachés

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Malabarmitzva Voir le message
    Le problème vient des valeurs de réglage par défaut du fichier Normal.dot. Je n'ai pas trouvé comment changer ces réglages pour la position des formes.

    Le code, ci-dessous, remet sur une ligne les images positionnées verticalement après un copier-coller depuis Excel. J'ai joint un fichier modèle .dotm contenant cette macro. Il suffit donc de créer un fichier Word depuis ce modèle pour pouvoir utiliser la macro.

    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
     
    Option Explicit
     
    Sub AlignerLesImagesHorizontalement()
     
    Dim MesShapes As Shapes
     
        On Error GoTo Fin
     
        With ActiveDocument
     
            If .Shapes.Count = 0 Then
                MsgBox "Il n'y a pas de formes dans le fichier !", vbCritical
                GoTo Fin
            End If
     
            Set MesShapes = .Shapes
     
            MesShapes.SelectAll
     
            With Selection.ShapeRange
     
                    .RelativeHorizontalPosition = wdRelativeHorizontalPositionMargin
                    .RelativeVerticalPosition = wdRelativeVerticalPositionMargin
                    .RelativeHorizontalSize = wdRelativeHorizontalSizeMargin
                    .RelativeVerticalSize = wdRelativeVerticalSizeMargin
     
                    .Left = wdShapeLeft
                    .LeftRelative = wdShapePositionRelativeNone
                    .Top = wdShapeTop
                    .TopRelative = wdShapePositionRelativeNone
     
                    .WidthRelative = wdShapeSizeRelativeNone
                    .HeightRelative = wdShapeSizeRelativeNone
                    .WrapFormat.AllowOverlap = False
            End With
     
        End With
     
    Fin:
     
         Set MesShapes = Nothing
     
    End Sub

    Pièce jointe 396323

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Juillet 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Juillet 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Rebonjour,

    effectivement la macro remet bien les images de manière horizontale mais le cadrage des images est assez mauvais et ne permet pas de "replacer" le texte autour des images:

    Nom : CaptureMacro.JPG
Affichages : 1032
Taille : 57,0 Ko

    aussi, avec les images sélectionnées, il m'est impossible de choisir le cadrage "aligné sur le texte", je dois sélectionner chaque image pour lui donner cet habillage.

    Aussi, comment fait-on pour utiliser le modèle que vous m'avez fourni au moment de créer mon document ? (je suis une buse sur l'utilisation avancée de Word)
    Merci tout de même pour l'aide !

    Bon week-end,
    Florent

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Malabarmitzva Voir le message
    Il faut sans doute déplacer la partie texte d'au moins la hauteur des images.
    Sinon, pour le fichier joint, au lieu de créer un document "Nouveau", il faut aller chercher le document dans vos modèles personnels. Ce document doit être placé dans C:\Users\XXXX\AppData\Roaming\Microsoft\Templates.

Discussions similaires

  1. [OL-2007] Copier/coller liens hypertext depuis Excel
    Par Adri687 dans le forum Outlook
    Réponses: 1
    Dernier message: 02/04/2012, 10h45
  2. [2007] Copier/coller des formes entre Excel et Word
    Par billybob2 dans le forum Microsoft Office
    Réponses: 4
    Dernier message: 29/01/2011, 16h59
  3. Collage spécial depuis Excel vers Word
    Par doudoustephane dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 03/04/2008, 17h14
  4. [sources] Generer une bibliographie depuis excel vers word
    Par merenptah44 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/05/2007, 11h13
  5. [sources] Generer une bibliographie depuis excel vers word
    Par merenptah44 dans le forum Contribuez
    Réponses: 0
    Dernier message: 22/05/2007, 11h07

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