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 :

Insérer une image dans tous les classeurs d'un dossier


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Insérer une image dans tous les classeurs d'un dossier
    Bonsoir à tous,

    j'aimerais savoir si vous pensez que c'est possible d'insérer une image dans une cellule défini dans tous les classeurs présents dans un dossier ?

    Il y aurait un fichier maitre avec un bouton pour lancer la macro et au lancement ca :

    1 prend connaissance de la photo
    2 prends connaissance de tous les fichiers du dossier
    3 insère l'image dans A1 avec une certaine taille


    avez vous des pistes si c'est réalisable ?


    Merci

  2. #2
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour jimbo,

    Oui
    ça devra ouvrir chaque fichier, coller ou insérer ta photo, l'enregistrer puis le fermer avant de passer au suivant
    réalisable mais probablement long à l'exécution

  3. #3
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Voila une contribution qui te permettra d'obtenir un tableau contenant le listing des fichiers contenus dans le répertoire spécifié.
    http://www.developpez.net/forums/d89...nu-repertoire/


    N'hésite pas à faire des recherches sur le thème "Insérer image dans fichier" (ou approchant), j'ai déjà vu/participé à des discussions sur le sujet.


    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

    C'est impossible de mettre une image dans une cellule. On peut tout au mieux la placer sur une feuille déterminée, mais jamais dans une cellule.
    À 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.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    avez vous des pistes si c'est réalisable ?
    Oui... l'enregistreur de macro peut-être ?
    Qui te donnerait un code du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        ActiveSheet.Shapes("Picture 1").Copy    'copier l'image nommée Picture 1
        Workbooks.Add                           'Crée un classeur. Ici on pourrait ouvrir le fichier qu'on veut
        Range("B3").Select                      'sélectionne la cellule où coller
        ActiveSheet.Paste                       'colle l'image
        Selection.ShapeRange.ScaleWidth 0.75, msoFalse, msoScaleFromTopLeft  'redimensionne à 75%

    Pour ce qui est de lire/ouvrir les fichiers, il y a pas mal d'exemples sur ce forum...

    Où est-ce que tu bloques exactement ?
    MPi²

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Salut

    Voila une contribution qui te permettra d'obtenir un tableau contenant le listing des fichiers contenus dans le répertoire spécifié.
    http://www.developpez.net/forums/d89...nu-repertoire/


    N'hésite pas à faire des recherches sur le thème "Insérer image dans fichier" (ou approchant), j'ai déjà vu/participé à des discussions sur le sujet.


    ++
    Qwaz
    j'ai commencé le fichier maitre il est en pièce jointe en faite dans la liste des fichiers il faudrait que ça remonte tous les noms de fichiers du dossier pour commencer
    Fichiers attachés Fichiers attachés

  7. #7
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonsoir à tous

    Pour commencer alors

    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 ChercheFic()
    Dim Doss As String, Lig As Long, Col As Long, Fic As String
        With ThisWorkbook.Worksheets("Fichiers")
            Doss = .Range("chemin").Value
            Lig = .Range("tableauxls").Row + 1
            Col = .Range("tableauxls").Column
            Fic = Dir(Doss & "*.xls*")
            Do Until Fic = ""
                .Cells(Lig, Col).Value = Fic
                Fic = Dir
                Lig = Lig + 1
            Loop
        End With
    End Sub

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Salut à tous

    parfait déjà une première chose qui fonctionne, je lance le VBA et il me collecte tous les noms.

    je pense que le plus dure reste à vanir pour aller copier mon Koala.jpg dans tous les noms trouvés

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    on insert pas une image dans une cellule mais on peut la placer au même endroit et avec la même dimension ce qui visuellement donne l'illusion que la photo est dans la cellule
    fait une recherche sur topleftcell ,sur AddPicture ou sur Pictures.Insert

    2 exemple pour inserer une image dans un sheets
    avec picture.insert
    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 insert_image()
        Dim sh As Worksheet, im As Picture
        Set sh = ActiveSheet
        Set im = sh.Pictures.Insert("C:\Users\Public\Pictures\Sample Pictures\Koala.jpg")
        Set cel = Range("G2:G3")
        With im
             .Left = cel.Left
            .Top = cel.Top
             'l'image reste a l'interieur  de la plage mais garde son aspect ration
             .Width = cel.Width
            .Height = cel.Height
        End With
    End Sub
    avec addpicture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub ADD_image()
    Set cel = Range("D6:D7")
    Dim sh As Worksheet, im As Shape
    Set sh = ActiveSheet
    'l'image est ajoutée et dimentionnée au dimention égale a la plage ou cellule en parametre
    ' ce qui implique  une perte de l'aspect ration
    Set im = sh.Shapes.AddPicture("C:\Users\Public\Pictures\Sample Pictures\Koala.jpg", msoFalse, msoCTrue, cel.Left, cel.Top, cel.Width, cel.Height)
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Merci ça fonctionne bien ! elle s’insère.

    Il faut maintenant écrire une boucle qui va l’insérer dans tous les fichiers découverts ? avec Workbooks.Open ?

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oupss!!!!
    j'en avais oublier une
    il y a un 3 eme moyen d'insérer une image dans le sheets
    en ajoutant un shapes rectangle(forme automatique)
    et en le remplissant d'une image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test3()
    Set cel = Range("D6:D7")
    Dim sh As Worksheet, im As Shape
    Set sh = ActiveSheet
    'l'image est ajoutée et dimentionnée au dimention égale a la plage ou cellule en parametre
    ' ce qui implique  une perte de l'aspect ration
    Set im = sh.Shapes.AddShape(1, cel.Left, cel.Top, cel.Width, cel.Height) 'on ajoute une shape rectangle au dimentions de la plage
    im.Fill.UserPicture ("C:\Users\Public\Pictures\Sample Pictures\Koala.jpg") ' on la rempli avec une image du disque dur
    im.Line.Visible = False 'on elenve le cadre autour de la shape 
    End Sub


    pour la boucle c'est simple avec l'instruction "dir "
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    vous pourriez m'aider pour la boucle ?

    Merci

  13. #13
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Bonsoir

    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 CommandButton20()
    'necessite d'activé Microsoft Scripting Runtime
    'Necessite l'activation de la reference Microsoft Windows Image Acquisition Library V2.00
    Static FSO As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder
    Dim File As Scripting.File
    Dim Img As WIA.ImageFile, IP As WIA.Imageprocess
    Dim photo As Variant
     
        Set Img = CreateObject("WIA.ImageFile")   'Création conteneur pour l'image à coller
        photo = Application.GetOpenFilename("Fichiers Images (*.jpg),*.jpg", , "double cliquer sur une image", , False)
        Img.LoadFile photo 'Chargement de l'image dans le conteneur
     
        Set FSO = CreateObject("Scripting.FileSystemObject") 'pour la manipulation du repertoire
        rep_source = Application.GetOpenFilename("Fichiers excel (*.xls),*.xls", , "Choisir les fichiers excel a ouvrir", , True)
        If IsArray(rep_source) Then
        Set cls = Application.Workbooks.Open(rep_source(1))
     
    With cls.Sheets(1).Range("a1")
            Gauche = .Left
            Sommet = .Top
            Largeur = .Width
            Hauteur = .Height
            End With
            cls.Sheets(1).Shapes.AddPicture photo, True, True, Gauche, Sommet, Largeur, Hauteur
        End If
     
    End Sub
    Je vous laisse boucler sur les classeurs du repertoire si le choix des fichiers ou coller l'image l'image se revele fastidieuse
    Ou je le ferais peut etre, mais beaucoup, beaucoup de travail en ce moment et peu de disponibilité.

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    bonjour keygen

    veux tu bien m'expliquer a quoi sert ton Object wia instancié dans ton code
    pour moi il sert a rien c'est sur même !!!!

    ensuite :
    pourquoi instancier des object fso,scripting puisque tu ne t'en sert pas et que tu te sert des boites de dialog intégré a l'application ????????,

    bref j'ai mis presque tout mis en vert et ca fonctionne encore c'est pour te dire

    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
    Sub CommandButton20()
    'necessite d'activé Microsoft Scripting Runtime
    'Necessite l'activation de la reference Microsoft Windows Image Acquisition Library V2.00
    'Static FSO As Scripting.FileSystemObject
    'Dim SourceFolder As Scripting.Folder
    'Dim File As Scripting.File
    'Dim Img As WIA.ImageFile, IP As WIA.Imageprocess
    Dim photo As Variant
     
        'Set Img = CreateObject("WIA.ImageFile")   'Création conteneur pour l'image à coller
        photo = Application.GetOpenFilename("Fichiers Images (*.jpg),*.jpg", , "double cliquer sur une image", , False)
        'Img.LoadFile photo 'Chargement de l'image dans le conteneur
     
        'Set FSO = CreateObject("Scripting.FileSystemObject") 'pour la manipulation du repertoire
        rep_source = Application.GetOpenFilename("Fichiers excel (*.xls),*.xls", , "Choisir les fichiers excel a ouvrir", , True)
        If IsArray(rep_source) Then ' tu veux bien m'expliquer ca aussi
        'pourquoi tester si c'est un array ??????????
        Set cls = Application.Workbooks.Open(rep_source(1))
     
    With cls.Sheets(1).Range("a1")
            'Gauche =
            'Sommet =
            'Largeur =
            'Hauteur =
     
            cls.Sheets(1).Shapes.AddPicture photo, True, True, .Left, .Top, .Width, .Height
        End With
        End If
     
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Bonsoir Patrick
    Je sais, je l'ai fait un peu a l'arrache hier soir.
    Exemple a ne pas suivre.
    Parti sur une idée, j'ai virer en court de route et pas vraiment nettoyer.

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    ça ne fonctionne pas malgré tout la boucle, ça colle l'image sur seulement un document même si je les ouvre tous

    j'aurais bien continué avec une boucle Dim

    Merci

Discussions similaires

  1. Insérer une image dans une application
    Par Invité dans le forum JBuilder
    Réponses: 4
    Dernier message: 23/04/2006, 18h19
  2. [MFC]Insérer une image dans un CListCtrl
    Par DestyNov@ dans le forum MFC
    Réponses: 8
    Dernier message: 04/03/2005, 14h36
  3. Comment insérer une image dans une cellule d'un TDrawGrid ?
    Par kanux dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/01/2005, 18h58
  4. [Crystal Reports 9] comment insérer une image dans Détails
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2003, 17h06

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