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 :

Affiché les images dynamiquement en fontion de la colonne nom [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut Affiché les images dynamiquement en fontion de la colonne nom
    Bonjour,

    j'ai un fichier excel avec 3 colonnes

    IMG - NOM - QUANTITE

    j'aimerais dans la colonne IMG afficher les images de la colonne NOM (pas manuellement mais dynamiquement parlant)

    j'ai un dossier avec tout les images avec leur nom

    exemple: /Users/monmac/Desktop/couleurList/images/rouge.jpg

    et donc je cherche une formule ou un code qui me permettra d'afficher les images dynamiquement pour tout les noms.

    Je me rappelle que j'avais utilisé il y a longtemps un code VBA qui permettais cela, mais je ne le trouve plus
    j'ai aussi googlé mais je n'ai rien trouvé apart des codes vba qui font d'autre tâches ...

    Pouvez vous me donner une piste?

    j'attache mon fichier zip

    couleurList.zip

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Bonjour à tous,

    j'ai avancé dans mes recherches et sur pc j'arrive à faire la procédure sans soucis,
    sous mac j'essaye d’adapter le chemin mais j'ai une jolie croix en disans impossible d'afficher l'image lier ...

    voici le code vba que j'ai introduit, trouvrer sur le net et fonctionne correctement sur windows

    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
    Dim i As Integer
    Dim sFilename As String
    Dim bcontinue As Boolean
    Dim spath As String
     
    Sub Attempt1()
    On Error Resume Next
     
    spath = "/Users/monmac/Desktop/couleurList/images/"
     
    i = 2
    bcontinue = True
    While bcontinue
    sFilename = Worksheets(1).Cells(i, 2).Value
    If sFilename = "" Then
    bcontinue = False
    Else
     
    Cells(i, 1).Select
    ActiveSheet.Pictures.Insert(spath + sFilename + ".jpg").Select
    Selection.ShapeRange.LockAspectRatio = msoFalse
    Selection.ShapeRange.Height = 125
    Selection.ShapeRange.Width = 201
    Selection.Left = ActiveSheet.Range("A" & i).Left
    Selection.Top = ActiveSheet.Range("A" & i).Top
    i = i + 1
    End If
    Wend
    End Sub
    Merci

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    re,

    apparemment sous mac les / sont à remplacé par :
    mais sans succés

  4. #4
    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
    Citation Envoyé par IVIedia Voir le message
    apparemment sous mac...
    Si tu ne le précise pas, il est logique de supposer que tu fais partie des 96% d'utilisateurs d'Excel qui l'utilisent avec Windows.

    mais sans succés
    Copie le code que tu as utilisé.

  5. #5
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,
    Je suis aussi sur Mac XL 2011
    C'est vrai que pour trouver les informations (concernant le code Mac) relève parfois de la recherche de l'arche perdu
    Mais même si 96% des utilisateurs sont sur PC il y a presque toujours moyen de créer un code multi-plateforme

    du coup étant déjà passé par là, on a :
    Application.PathSeparator => permet d'avoir soit ":" ou "/" selon si on est sur PC ou Mac

    Dans le cas où (information importante à connaître au début pour éviter de tourner en rond surtout quand on est sur Mac) : où se trouve ton fichier XL? où se trouve ton dossier images?
    Dans le cas où ton dossier images se trouve dans un sous dossier par rapport à ton fichier XL tu utiliseras :
    ThisWorkbook.Path => te donneras le chemin du dossier où se trouve ton fichier XL

    on pourras faire alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Chemin()
    Dim ChR_Sep As String, MyPath As String, MyPath_F As String, MyPath_I As String, sD As String, spath As String 'ChR_Sep = le / ou :    -    MyPath_F = Chemin du dossier ou se trouve le fichier   -   sD_Img = sous-dossier images
        ChR_Sep = Application.PathSeparator
        sD_Img = "NomDuDossierImages"
        MyPath_F = ThisWorkbook.Path
        MyPath_I = MyPath_F & ChR_Sep & sD_Img & ChR_Sep 'Chemin du dossier images
        MsgBox MyPath_I
    End Sub
    Et là tu as un code qui marche aussi bien sur PC que sur Mac

    Edit : il me semble en fait que la séparation dans un répertoire PC c'est plutôt \ - si quelqu'un à la gentillesse de me confirmer svp + correction de la variable sD en sD_Img as String (cf déclaration de variable - à remplacer)
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Bonsoir à tous, merci pour votre aide

    @RyuAutodidacte j'ai essayé d'adapter votre code avec le mien mais on dirais que ça ne va pas, ou bien le code pour windows est pas bon du tout pour mac ...

    voici ce que j'ai essayé

    ça me donne un pop up avec la racine complet du dossier images et j'ai dans les cellules le même message que en haut

    "une jolie croix en disans impossible d'afficher l'image lier ..."

    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
    31
    32
    33
    34
    35
    36
    Dim i As Integer
    Dim sFilename As String
    Dim bcontinue As Boolean
    Dim MyPath_I As String
     
     
    Sub Chemin()
    Dim ChR_Sep As String, MyPath As String, MyPath_F As String, MyPath_I As String, sD As String, spath As String 'ChR_Sep = le / ou :    -    MyPath_F = Chemin du dossier ou se trouve le fichier   -   sD_Img = sous-dossier images
        ChR_Sep = Application.PathSeparator
        '/Users/monmac/Desktop/couleurList/images/
        sD_Img = "images"
        MyPath_F = ThisWorkbook.Path
        MyPath_I = MyPath_F & ChR_Sep & sD_Img & ChR_Sep 'Chemin du dossier images
        MsgBox MyPath_I
     
     
     
    i = 2
    bcontinue = True
    While bcontinue
    sFilename = Worksheets(1).Cells(i, 2).Value
    If sFilename = "" Then
    bcontinue = False
    Else
     
    Cells(i, 1).Select
    ActiveSheet.Pictures.Insert(MyPath_I + sFilename + ".jpg").Select
    Selection.ShapeRange.LockAspectRatio = msoFalse
    Selection.ShapeRange.Height = 125
    Selection.ShapeRange.Width = 201
    Selection.Left = ActiveSheet.Range("A" & i).Left
    Selection.Top = ActiveSheet.Range("A" & i).Top
    i = i + 1
    End If
    Wend
    End Sub
    Merci

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

Discussions similaires

  1. Afficher les images d'un répertoire
    Par jim1 dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2006, 08h00
  2. afficher les images background
    Par DELYMED2 dans le forum ASP
    Réponses: 2
    Dernier message: 17/10/2005, 09h09
  3. [Crystal Report] Afficher une image dynamiquement
    Par ntondini dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 09/08/2005, 09h58
  4. Afficher les images en C++ ou C
    Par sheryuledragon dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 17/03/2005, 11h22
  5. [VB.NET] Afficher une image dynamiquement
    Par Sadneth dans le forum ASP.NET
    Réponses: 20
    Dernier message: 07/01/2005, 16h26

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