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 plusieurs photos et les redimensionner automatiquement


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable Logistique
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Logistique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Insérer plusieurs photos et les redimensionner automatiquement
    Bonjour,

    Je souhaitais vous solliciter par rapport à l’une de mes problématiques en entreprise.

    Pour remettre dans le contexte, nous générons des ordres de fabrication via un fichier EXCEL. Ce fichier va chercher les données de fabrication (notamment nomenclatures) dans notre système de gestion commerciale.
    Afin de rendre plus « user friendly » le document distribué, mais aussi d’apporter tout de suite une information visuelle, je souhaite faire afficher une photo de l’article que les opérateurs vont devoir fabriquer.

    Ces photos, au format JPEG, sont rangées dans un dossier unique nommé « Images Produits » et porte comme nom le numéro de référence de l’article. Dans une cellule du fichier Excel je vais afficher automatiquement le chemin menant à la photo du produit concerné, ex :
    Z:\Images Produits\7018051.jpg

    Ensuite je clique sur un bouton pour lancer une macro qui doit aller chercher la photo voulue puis l’insérer à un endroit précis du document et mettre en forme la dimension de la photo afin que le document soit directement imprimable. J’ai donc le programme suivant :

    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
    Sub TEST_PHOTO()
     
    'sélectionner la cellule qui contient le lien vers la photo
    Range("H42:J45").Select
     
    'insérer la photo du lien
    ActiveSheet.Pictures.Insert(ActiveCell.Value).Select
    Selection.Placement = xlMoveAndSize
     
    'redimensionner la photo
    With ActiveSheet
    ActiveSheet.Shapes.Range(Array("Picture 1")).Left = Range("H42:J45").Left
    ActiveSheet.Shapes.Range(Array("Picture 1")).Top = Range("H42:J45").Top
    ActiveSheet.Shapes.Range(Array("Picture 1")).LockAspectRatio = msoFalse
    ActiveSheet.Shapes.Range(Array("Picture 1")).Height = Range("H42:J45").Height
    ActiveSheet.Shapes.Range(Array("Picture 1")).Width = Range("H42:J45").Width
    End With
     
    End Sub
    Le programme fonctionne bien mais uniquement sur le premier Ordre de fabrication. En effet la photo s’appelle « Picture 1 » dans mon programme. A chaque insertion de photo Excel incrémente leur nom, donc le sphotos deviennent picture 1, puis picture 3 etc. Or dans mon code, le nom de la photo reste fixe… Comment pourrais-je faire ?

    Bien à vous

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 24
    Points : 23
    Points
    23
    Par défaut
    essaye en remplaçant le "with Activesheet" par un "with selection" puisque à l'étape précédente ton image est sélectionnée.

  3. #3
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 435
    Points
    1 435
    Par défaut
    bonjour,
    With ActiveSheet
    ActiveSheet.Shapes.Range(Array("Picture 1")).Left = Range("H42:J45").Left
    ActiveSheet.Shapes.Range(Array("Picture 1")).Top = Range("H42:J45").Top
    ActiveSheet.Shapes.Range(Array("Picture 1")).LockAspectRatio = msoFalse
    ActiveSheet.Shapes.Range(Array("Picture 1")).Height = Range("H42:J45").Height
    ActiveSheet.Shapes.Range(Array("Picture 1")).Width = Range("H42:J45").Width
    End With
    on utilise With pour "éclaircir" le code, pour ne pas "répéter",...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With ActiveSheet.Shapes.Range(Array("Picture 1"))
        .Left = Range("H42:J45").Left
        .Top = Range("H42:J45").Top
        .LockAspectRatio = msoFalse
        .Height = Range("H42:J45").Height
        .Width = Range("H42:J45").Width
    End With
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 24
    Points : 23
    Points
    23
    Par défaut
    Et pourquoi pas ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With selection
        .Left = Range("H42:J45").Left
        .Top = Range("H42:J45").Top
        .LockAspectRatio = msoFalse
        .Height = Range("H42:J45").Height
        .Width = Range("H42:J45").Width
    End With

  5. #5
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 435
    Points
    1 435
    Par défaut
    bonjour,

    et pourquoi pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    With selection
     
        .Placement = xlMoveAndSize
     
        .Left = Range("H42:J45").Left
        .Top = Range("H42:J45").Top
        .LockAspectRatio = msoFalse
        .Height = Range("H42:J45").Height
        .Width = Range("H42:J45").Width
    End With
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  6. #6
    Candidat au Club
    Homme Profil pro
    Responsable Logistique
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Logistique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour à vous deux,

    Je vous remercie vivement pour votre aide, car effectivement ce code avec "With selection" fonctionne superbement ! Et en plus il s'est "éclaircit"

    Vivement Lundi que je puisse faire joujou avec mes jolis OF........

    Bon WE

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/02/2011, 11h45
  2. [WD-2007] Redimensionnement automatique d'une photo
    Par romain08 dans le forum Word
    Réponses: 1
    Dernier message: 28/02/2010, 09h35
  3. Réponses: 5
    Dernier message: 30/04/2009, 10h11
  4. Copier des cellules de plusieurs fichiers et les trier automatiquement
    Par nicethe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/10/2008, 12h40
  5. [J2SE 5.0] Insérer plusieurs type dans une liste. Et les récupérer!
    Par HebusBreizh dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 26/09/2007, 15h32

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