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 :

soucis avec macro insertion photos pour l'enregistrer dans le fichier [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut soucis avec macro insertion photos pour l'enregistrer dans le fichier
    bonjour
    j'ai un petit soucis avec ma macro insertion photo sous xl2010 alors qu'avec 2003 elle marche. En fait le soucis est que mes photos sont visibles dans le dossier mais qu'une fois envoyé a un quelqu'un ,les photos ne sont plus visibles et a la place il y a ecrit "impossible d'afficher l'image liée"
    j'aimerais avec de l'aide pour modifier cela mais je ne sais me servir que de l'enregistrement automatique
    je vous met le script pour connaitre comment la modifier.

    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
    Range("A11:E24").Select
        ActiveSheet.Pictures.Insert( _
            "C:\photos\1.JPG").Select
        Range("G11:K24").Select
        ActiveSheet.Pictures.Insert( _
              "C:\photos\1.JPG").Select
        Range("A27:E40").Select
        ActiveSheet.Pictures.Insert( _
             "C:\photos\1.JPG").Select
        ActiveWindow.SmallScroll Down:=15
        Range("G27:K40").Select
        ActiveSheet.Pictures.Insert( _
              "C:\photos\1.JPG").Select
        ActiveWindow.SmallScroll Down:=12
        Range("A42:E55").Select
        ActiveSheet.Pictures.Insert( _
             "C:\photos\1.JPG").Select
        Range("G42:K55").Select
        ActiveSheet.Pictures.Insert( _
              "C:\photos\1.JPG").Select
        ActiveWindow.SmallScroll Down:=15

    merci a ceux qui prendront un peu de temps pour m'aider.

  2. #2
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Bonsoir,

    Essaie avec la méthode Shapes.AddPicture. Tu peux lui spécifier de faire une copie de l'image à la place d'une image liée. Je ne sais pas si c'est possible avec la méthode Pictures.Insert.

    Bon courage

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    bonsoir

    j"ai essayé avec Shapes.AddPicture. mais j"y arrive pas ,quand je le met a la place de Pictures.Insert, j'ai une erreur 450, je sais pas si je le met a la bonne place et si cela se fait comme cela.
    mais merci pour ton aide

    cdt

  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,

    Pour incorporer des images à un classeur, tu peux utiliser un UserForm et un contrôle ImageList --> http://silkyroad.developpez.com/VBA/ImageList/
    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
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour

    j'ai touvé cela a force de chercher cela fonctionne mais est il possible de mettre la photos directement dans des cellules fusionnées au lieu de devoir les mettre a une place définie par L,T,W,H

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Function InsertAnyPicture(ByRef TargetSheet As Worksheet, ByVal PictureFileName As String, ByVal L As Single, ByVal T As Single, ByVal W As Single, ByVal H As Single, Optional ByVal LinkToFile As Boolean = False, Optional ByVal SaveWithDocument As Boolean = True) As Boolean
     
        On Error GoTo L_ErrInsertAnyPicture
        TargetSheet.Shapes.AddPicture PictureFileName, LinkToFile, SaveWithDocument, L, T, W, H
        InsertAnyPicture = True
        On Error GoTo 0
    L_ExInsertAnyPicture:
        Exit Function
     
    L_ErrInsertAnyPicture:
        InsertAnyPicture = False
        Resume L_ExInsertAnyPicture
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub TestPourVoir()
        'Insère l'image
        Call InsertAnyPicture(Worksheets(3), "C:\photos\1.JPG", 0, 130, 260, 190)
        'Insère l'image
        Call InsertAnyPicture(Worksheets(3), "C:\photos\2.JPG", 297, 130, 260, 190)
        'Insère l'image
        Call InsertAnyPicture(Worksheets(3), "C:\photos\3JPG", 0, 342, 260, 190)
         'Insère l'image
        Call InsertAnyPicture(Worksheets(3), "C:\photos\1.JPG", 297, 342, 260, 190)
    merci a ceux qui prennes le temps de m'aider

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    bonjour

    Comment faire pour insérer la photo dans une plage de cellule Range("b2:e11") a la place du positionnement par point L, T, W, H avec Addpicture

    j'espere etre clair...

    merci

  7. #7
    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,

    Tu peux faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim L As Single, T As Single, W As Single, H As Single
     
    With Worksheets(3).Range("B2:E11")
        L = .Left
        T = .Top
        W = .Width
        H = .Height
    End With
    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.

  8. #8
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    j'espere ne pas mettre fait mal comprendre.

    en fait je veut remplacer dans ma macro les points L,T,W,H
    par une plage de cellules fusionnées style ("B2:E11") a la place de
    0, 130, 260, 190
    dans le code la macro et je n'arrive pas a incorporé ton code

    voici le mien dis moi ou je peux y glisser le tiens si c'est faisable.

    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Function InsertAnyPicture(ByRef TargetSheet As Worksheet, ByVal PictureFileName As String, ByVal L As Single, ByVal T As Single, ByVal W As Single, ByVal H As Single, Optional ByVal LinkToFile As Boolean = False, Optional ByVal SaveWithDocument As Boolean = True) As Boolean
     
        On Error GoTo L_ErrInsertAnyPicture
        TargetSheet.Shapes.AddPicture PictureFileName, LinkToFile, SaveWithDocument, L, T, W, H
        InsertAnyPicture = True
        On Error GoTo 0
    L_ExInsertAnyPicture:
        Exit Function
     
    L_ErrInsertAnyPicture:
        InsertAnyPicture = False
        Resume L_ExInsertAnyPicture
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
     
        'Insère l'image
        Call InsertAnyPicture(Worksheets(3), "C:\photos\1.JPG", 0, 130, 260, 190)
        'Insère l'image
        Call InsertAnyPicture(Worksheets(3), "C:\photos\2.JPG", 297, 130, 260, 190)
        'Insère l'image
        Call InsertAnyPicture(Worksheets(3), "C:\photos\3.JPG", 0, 342, 260, 190)
         'Insère l'image
        Call InsertAnyPicture(Worksheets(3), "C:\photos\4.JPG", 297, 342, 260, 190)
     
    End Sub

  9. #9
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
    Dim L As Single, T As Single, W As Single, H As Single
     
    With Worksheets(3).Range("B2:E11")
        L = .Left
        T = .Top
        W = .Width
        H = .Height
    End With
     
        'Insère l'image
        Call InsertAnyPicture(Worksheets(3), "C:\photos\1.JPG", L, T, W, H)
     
    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.

  10. #10
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Re bonjour


    cela fonctionne ,je te remercie toi et ceux qui m'ont aidés.

    cdt

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/06/2011, 21h05
  2. Réponses: 1
    Dernier message: 02/10/2010, 09h00
  3. Réponses: 1
    Dernier message: 25/09/2007, 09h18
  4. [MySQL] soucis avec un INSERT
    Par FraK dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 28/06/2007, 17h50
  5. [MySQL] Soucis avec une insertion dans une base
    Par Ludo75 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 27/01/2006, 14h03

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