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 :

Importer une image depuis un Classeur Excel fermé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Alternant
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Alternant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Par défaut Importer une image depuis un Classeur Excel fermé
    Bonjour à tous,

    Je suis nouveau sur le forum, et j'ai besoin de votre aide. Dans le cadre de mon travail, je dois réaliser une base de données extraites de quelques milliers de fichiers Excel. Jusque la pas de soucis, sauf lorsque je me suis penché sur l'importation des images contenues dans ces fichiers.

    Le plus gros problème étant que je ne connais pas le nom de ces images, que je ne sait pas toujours s'il y a une image dans ces fichier, et que je dois chercher ces images sur un plage de cellules bien particulière...



    Merci d'avance pour vos réponse !
    Images attachées Images attachées  

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne comprends pas pourquoi tu parles de classeur "fermé" dans ton titre puisque tu ouvres le classeur dans ta macro de façon classique.
    Citation Envoyé par N_icolas Voir le message
    je me suis penché sur l'importation des images contenues dans ces fichiers.
    Le plus gros problème étant que je ne connais pas le nom de ces images, que je ne sait pas toujours s'il y a une image dans ces fichier, et que je dois chercher ces images sur un plage de cellules bien particulière...
    Petite remarque liminaire non constructive : mon gars, tu es dans de sales draps.
    Ton truc, ça va pas être simple.

    A ta place, je commencerai par faire, pour le fichier courant, un bilan des images contenues dans le fichier et par mettre leur noms et propriétés dans des variables.
    Un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim ImgNb As Long
    Dim Img(1000) As String
    Dim ImgCur As Picture
     
    ImgNb = 0
    For Each ImgCur In ActiveSheet.Pictures
        ImgNb = ImgNb + 1
        Img(ImbNb) = ImgCur.Name
    Next ImgCur
    Avec ça, tu aurais déjà la liste de toutes les images avec leurs noms et leur nombre (donc la présence ou non d'image dans la feuille).

    Bien sûr, en fonction de ce que tu veux faire, il faudrait récupérer d'autres informations pour les identifier plus précisément.
    Je pense (sans certitude) que les propriété de Picture doivent être à peu près les mêmes que celles de Shape.
    https://msdn.microsoft.com/fr-fr/vba...e-object-excel
    A toi de fouiller dedans.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Alternant
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Alternant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Par défaut
    Merci Menhir pour ta réponse rapide !
    En effet ce n'est pas simple, surtout que je ne connais pas beaucoup de choses sur les propriétés shape. Je vais creuser un peu plus la dessus avec ton lien !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Alternant
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Alternant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Par défaut
    Bon finalement j'ai opté pour une solution beaucoup plus radical :
    Je copie la plage de cellule qui m'interreseur dans le classeur, et je le colle dans la base de données.
    Ce n'est pas ultra propre mais ca conviendra.

    Je laisse le code si quelqu'un est intéressé

    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
     
    Sub importPicture(MyFile As String, MyPath As String, Curr_Row As Long, name_IDS_sheet As String, cutArea As String, rowHeight As Double)
     
    Dim title  As String
    title = MyPath & MyFile 'path
     
    Workbooks.Open title    'Open wb where images are
     
        Windows(MyFile).Activate        'We activate this ids workbook (just to be sure)
        Sheets(name_IDS_sheet).Select   'go to injection sheet of the ids
     
        Range(cutArea).Select       'we select the range where images are
        Application.CutCopyMode = False
        Selection.Copy                  'cut the range (AND SO THE IMAGES)
     
     
        Windows("Database de travail3.xlsm").Activate   'Go back to database
        Sheets("PictureEssai").Select                   'The sheet where we past the range
        Range("A" & Curr_Row).Select                   'Cell where we past
     
        ActiveSheet.Paste           'Past
     
    Application.DisplayAlerts = False   'to close without pop up to save
        Windows(MyFile).Close     'Closing workbook
    Application.DisplayAlerts = True
     
    End Sub

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

Discussions similaires

  1. [XL-2007] récupérer le nom d'une feuille d'un classeur excel fermé
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/07/2011, 14h23
  2. Importer une image depuis windows
    Par norgepagan dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/05/2011, 21h58
  3. [VBA] Importer une image d'un fichier excel vers un autre
    Par norgepagan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/05/2011, 12h30
  4. [WD-2007] récupérer le nom d'une feuille d'un classeur excel fermé, depuis word
    Par markelov dans le forum VBA Word
    Réponses: 0
    Dernier message: 24/02/2010, 11h33
  5. Réponses: 0
    Dernier message: 19/01/2009, 21h10

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