macro excel pour images

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

manulemalin13000

XLDnaute Occasionnel
bonjour a tous,

Je cherche a ecrire une macro mais j'ai quelques difficultés je m'explique:

J'ai un dossier qui comporte 96 images
Ces images sont nomées de la sorte
A1_manu_GX_2009-09-29_03-14-19_Egram_A1.jpeg
A2_manu_GX_2009-09-29_03-14-19_Egram_A2.jpeg

Les noms commencent par A1 puis A2 jusqu'a A12
Puis ca reprend de B1 à B12
Puis C1 à C12
...
Jusqu'à H1 à H12

Mon souci:
Quand j utilise les macros automatiques ca me met une adresse absolue pour aller chercher les fichiers et moi je voudrai une adresse "relative" c'est a dire que quand je lance la macro, un explorateur me demade dans quel dossier sont mes images et il va apres les chercher dans l'ordre que j'ai decrit ci dessus et ceci depuis n'importe quel ordinateur.

Puis il me colle chaque image dans une ligne differente

Un exemple en PJ

Merci beaucoup pour le coup de pouce
 

Pièces jointes

Dernière édition:
Re : macro excel pour images

Hello,

Comprends pas vraiment ta demande, et le classeur n'en dit pas plus.

Essaie de nous éclaircir...

Tu dis que la première image s'appelle
A1_manu_GX_2009-09-29_03-14-19_Egram_A1.jpeg
et que le nom est en A1 ?

et la deuxième s'appelle
A2_manu_GX_2009-09-29_03-14-19_Egram_A2.jpeg?
et le nom en A2 ?

Mais dans ton fichier joint en colonne A, il n'y a rien... ni dans la B d'ailleurs !

Pas très clair tout ça !

Et pourtquoi donner un nom si long à tes images ?

Cdt, Hulk.
 
Re : macro excel pour images

En fait si les noms sont si longs c'est parce qu'ils sont générés par un logiciel.
Je veux juste une macro qui va coller une image par ligne en gros
Et qui reprend le debut du nom genre A1

Cas concret:

J'ai ces images la dans un dossier:
A1_manu_GX_2009-09-29_03-14-19_Egram_A1.jpeg
A2_manu_GX_2009-09-29_03-14-19_Egram_A2.jpeg
A3_manu_GX_2009-09-29_03-14-19_Egram_A3.jpeg
...
H12_manu_GX_2009-09-29_03-14-19_Egram_H12.jpeg

Je veux juste que la macro me mette une colonne avec A1 dedans et qu'a coté elle me colle l'image a la taille de la cellule excel
Et ainsi de suite pour A2 en ligne 2 + son image dans la cellule d'a coté
A3 en ligne 3 + son image dans la cellule d'a coté
Et H12 en ligne 96 avec son image a coté

C'est juste ca.

Et juste pour info les images ne vont pas vraiment de A1 à A12789 mais de la facon suivante:

A1 à A12
B1 à B12
C1 à C12
...
H1 à H12

Merci pour ton aide Hulk
J'espere avoir été plus clair

Manu
 
Re : macro excel pour images

Bonsoir,
A tester et adapter en activant la ref MS Sripting Runtime auparavant
Code:
Sub ImportImage()
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Dossier images", 0, 0)
If Not (objFolder) Is Nothing Then
Img = Dir(objFolder & "\" & "*.jpeg")
i = 1
    Do While Img <> ""
    Tablo = Split(Img, "_")
        With ActiveSheet
            .Cells(i, 3) = Tablo(0)
            Set c = .Cells(i, 4)
            .Shapes.AddPicture objFolder & "\" & Img, True, True, _
                c.Left, c.Top, c.Width, c.Height
        End With
    Img = Dir()
    i = i + 1
    Loop
End If
Set objFolder = Nothing
Set objShell = Nothing

End Sub
A+
kjin
 

Pièces jointes

Re : macro excel pour images

Re-Bonjour (désolé !!) le forum,


j'ai donc activé dans outils references le microsoft scripting Runtime mais il ne se passe rien quand je lance la macro.
J'ai bien l'exploarteur qui s'ouvre, je lui donne le dossier avec les images mais il me colle rien. Cela est il normal ?

Merci pour vos reponses

Manu
 
Re : macro excel pour images

Bonjour,
La politesse me parait la moindre des choses et ça ne coute rien...
As tu essayé avec les images contenues dans le dossier "Nouveau dossier" que je t'ai fourni ?
Les images dans ton dossier ont-elles bien l'extension ".jpeg" comme tu l'as précisé ?
Testé et sans pb pour moi
A+
kjin
 
Re : macro excel pour images

Bonjour,

J'apporte quelques précisions:
J'ai excel 2003 en anglais
J'ouvre ton fichier xls, Je fais "autoriser les macros"
Quand j active le MS Scripting Runtime, que je lance la macro il m ouvre les dossiers windows, je lui donne le dossier "Nouveau dossier" ou tu m'as mis 2 .jpeg dedans. Je fais OK et ... rien
Il ne se passe rien
Ca me parait etrange

Une question: Pourquoi y a t il un mot de passe et une arborescence dans Visual basic qui s'appelle Internet Assistant (HTML.XLA) ??

merci pour ces precisions.

manu
 
Re : macro excel pour images

Bonjour,
Désolé, j'ai juste oublié dans le code de récupérer le path du dossier sélectionné 🙂rolleyes🙂, parce que j'étais parti sur autre chose auparavant et je n'ai pas vérifié.Du coup la ref que je t'ai indiqué n'est pas utile, tu peux donc la décocher.
Modifie le code comme suit
Code:
Sub ImportImage()
Dim oShell, oFolder, oFolderItem
Dim Rep As String, Img As String, Tablo
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.BrowseForFolder(0, "Dossier images", 0)
If Not (oFolder) Is Nothing Then
Set oFolderItem = oFolder.Items.Item
Rep = oFolderItem.Path
Img = Dir(Rep & "\" & "*.jpeg")
i = 1
    Do While Img <> ""
    Tablo = Split(Img, "_")
        With ActiveSheet
            .Cells(i, 3) = Tablo(0)
            Set c = .Cells(i, 4)
            .Shapes.AddPicture Rep & "\" & Img, True, True, _
                c.Left, c.Top, c.Width, c.Height
        End With
    Img = Dir()
    i = i + 1
    Loop
End If
Set oFolderItem = Nothing
Set oFolder = Nothing
Set oShell = Nothing

End Sub
Pour le fichier .xla, il s'agit d'une macro complémentaire qui à été activée et qui est protégée (Microsoft je crois)
A+
kjin
 
Re : macro excel pour images

Bonjour tout le monde,

J'ai une derniere petite question concernant la macro qui marche bien.
J aimerai pouvoir faire la meme chose mais qu'elle colle les images a partir de la cellule que je selectionne.
Parce que sinon elle repart toujours a partir d'en haut du fichier et j aimerai implementer ce fichier en fait a partir d une selection.

Merci pour votre aide

manu
 
Re : macro excel pour images

Bonjour,
Il suffit de remplacer la valeur de départ de par la ligne sélectionnée
Code:
'...
[COLOR="Blue"]i = ActiveCell.Row[/COLOR]
    Do While Img <> ""
    Tablo = Split(Img, "_")
        With ActiveSheet
            .Cells(i, 3) = Tablo(0)
            Set c = .Cells(i, 4)
            .Shapes.AddPicture Rep & "\" & Img, True, True, _
                c.Left, c.Top, c.Width, c.Height
        End With
    Img = Dir()
    i = i + 1
    Loop
'...
Si tu veux également changer de colonne
Code:
'...
[COLOR="Blue"]j = ActiveCell.Column[/COLOR]
i = ActiveCell.Row
    Do While Img <> ""
    Tablo = Split(Img, "_")
        With ActiveSheet
            .Cells(i,[COLOR="Blue"] j - 1[/COLOR]) = Tablo(0)
            Set c = .Cells(i, [COLOR="Blue"]j[/COLOR])
            .Shapes.AddPicture Rep & "\" & Img, True, True, _
                c.Left, c.Top, c.Width, c.Height
        End With
    Img = Dir()
    i = i + 1
    Loop
'...
A+
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour