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 :

VBA - Importer une image redimensionnée à un endroit précis sous excel [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien
    Inscrit en
    Juin 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juin 2017
    Messages : 13
    Par défaut VBA - Importer une image redimensionnée à un endroit précis sous excel
    Bonjour,

    Cela fait quelques jours que je cherche une solution simple et efficace pour une macro. Pour faire le plus simple et claire possible, je souhaite importer une image depuis un chemin réseau, la redimensionner et l'importer à une localisation précise sur ma feuille excel. Cela va être du traitement de masse, je vais créer tous les jours une quantité de fiche variable en fonction d'une base de données excel, il ne me manque plus que cette image à importer...

    Par exemple, je veux que ma photo fasse au maxi 90 x 90 pixel en gardant ces proportions et soit positionnée au niveau supérieur gauche de ma cellule F1 par exemple.

    J'ai trouvé ceux-ci sur internet, ca me parait pas mal pour ce que je veux faire, mais je ne trouve pas la façon de l'importer par la suite ... sans l'enregistrer sous un autre nom sur le réseau (je n'ai pas besoin du fichier source modifié)

    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
    Sub redimensionnerImage()
        Dim Img As WIA.ImageFile, IP As WIA.ImageProcess
        
        'Création conteneur pour l'image à manipuler
        Set Img = CreateObject("WIA.ImageFile")
        'Création du gestionnaire de filtre
        Set IP = CreateObject("WIA.ImageProcess")
        
        'Chargement de l'image dans le conteneur
        Img.LoadFile "C:\fourmiz.JPG"
        
        	'Ajoute le filtre pour redimensionner l'image (Scale)
            IP.Filters.Add IP.FilterInfos("Scale").FilterID
            'Définit la largeur maxi pour le redimensionnement
            IP.Filters(1).Properties("MaximumWidth") = 90
            'Définit la hauteur maxi pour le redimensionnement
            IP.Filters(1).Properties("MaximumHeight") = 90
            'remarque :
            'Les proportions sont conservées. Le filtre prend en compte
            'les ratios et adapte la taille pour ne pas dépasser les valeurs maxi définies.
            
        'Application du filtre à l'image
        Set Img = IP.Apply(Img)
        'Enregistre l'image redimensionnée
        Img.SaveFile "C:\fourmizThumbnail.JPG" ' <------- c'est ici dans la macro que je voudrais importer l'image traitée et non l'enregistrer ...
    End Sub
    Est-ce que vous pouvez m'aider ? Je suis pris par le temps ... d'habitude j'arrive à m'en sortir en explorant un peu le web ... je ne suis pas un pro de VBA.

    Par avance, merci de votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    poster une question un dimanche et attendre une réponse un lundi férié, il faut compter sur les francophones qui travaillent

    POur l'emplacement d'une image, tu aurais trouvé en 2 minutes dans la des pistes de solution

    https://excel.developpez.com/faq/?page=Image
    https://excel.developpez.com/faq/?pa...InsertionImage
    ou encore
    https://excel.developpez.com/faq/?pa...imensionsImage
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Homme Profil pro
    Technicien
    Inscrit en
    Juin 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juin 2017
    Messages : 13
    Par défaut
    Bonjour,

    Tout d'abord merci de ta réponse

    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,

    poster une question un dimanche et attendre une réponse un lundi férié, il faut compter sur les francophones qui travaillent

    POur l'emplacement d'une image, tu aurais trouvé en 2 minutes dans la des pistes de solution

    https://excel.developpez.com/faq/?page=Image
    https://excel.developpez.com/faq/?pa...InsertionImage
    ou encore
    https://excel.developpez.com/faq/?pa...imensionsImage
    J'ai déjà regardé de ce côté là, mais cela ne fonctionne pas ... je n'arrive pas à insérer l'image ... erreur 1004

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub importimage()
     
    Dim Shp As Shape
    Dim Fichier As String
     
    Fichier = "C:\Users\Public\Pictures\Sample Pictures\Hortensias.jpg"
    'expression.AddPicture(FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height)
    Set Shp = Feuil1.Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 0, 0, 100, 90)
     
    End Sub
    J'ai cru comprendre qu'il y avait des bugs depuis la version 2007..

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    As tu au moins une feuille qui porte le nom de Feuil1

    adapte un minimum ton code, il n'y a aucune raison que ca plante
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre averti
    Homme Profil pro
    Technicien
    Inscrit en
    Juin 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juin 2017
    Messages : 13
    Par défaut
    oui, j'ai créé un nouveau excel de base ... je bute dessus et je n'arrive pas à me concentrer ...

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Essaie avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Shp = Worksheets("Feuil1").Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 0, 0, 100, 90)
    voire même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Shp = Worksheets(1).Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 0, 0, 100, 90)
    sinon es-tu sur de l'emplacement de ton image ?

    que t'affiche la ligne suivante :

    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/06/2017, 18h27
  2. [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
  3. Ouvrir une image mappée à un endroit précis ?
    Par Chtidichi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 23/02/2010, 13h34
  4. Afficher une fenetre a un endroit préci de l'ecran
    Par leo5593 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/08/2005, 14h58

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