Insertion de photos via une macro

Fab117

XLDnaute Impliqué
Salut,
J'ai une feuille de calcul "Masque" dans laquelle je dois mettre diverses photos.
Les photos sont toujours dans ...\xxxxx\Photos300px (où xxxxx est le répertoire où se trouve le ficheir Excel)

Quelqu'un pourrait-il m'aider dans l'insertion des photos.
Le nom de celles-ci varie d'une fois à l'autre. Il doit les ajouter dans l'ordre alphabétique.

Je ne suis pas sur d'être très clair => ci-joint mon fichier. J'en suis à " ' Va chercher la photo dans le répertoire ...\Photos300px"
A ce stade, il est supposé aller dans le répertoire "...\Photos300px", prendre la première photo et la mettre dans la cellule "A7".
Ensuite, il continue la boucle en allant chercher la 2ème photo et en la collant dans "A10", ...

Merci d'avance pour votre aide.

Fab
 

Pièces jointes

  • Fab01.xls
    36 KB · Affichages: 49
  • Fab01.zip
    14.5 KB · Affichages: 23

Hulk

XLDnaute Barbatruc
Re : Insertion de photos via une macro

Hello,

Il y a bien cette solution (voir le fichier joint), mais le problème est que tes cadres sont des cellules fusionnées et pour adapter l'image aux cellules fusionnées, je ne sais pas faire (et je ne crois pas, ou en tous cas je n'ai jamais vu de solution pour ça).

Il faudrait que dans ta macro tu puisses insérer un cadre image dans la boucle de la même taille que tes cellules fusionnées ou modifier la mise en page et là il n'y aurait pas de problème.

Il n'y a que 5 images dans le dossier que j'ai joint, donc maximum 5 dans l'InputBox !

A te relire.
 

Pièces jointes

  • Image Fab.zip
    22.7 KB · Affichages: 55

Fab117

XLDnaute Impliqué
Re : Insertion de photos via une macro

Salut Hulk,
Merci pour ton aide.
Malheureusement, chez moi, ça ne fonctionne pas, car les noms des photos changent tout le temps (codification faite par l'appareil photo). Hors avec ton code, il reprend le nom qu'il trouve dans la feuille Excel et va voir s'il trouve le même nom dans les fichiers photo.
Est-il possible qu'il rapatrie les photos l'une après l'autre (dans l'ordre alphabétique) indépendemment de leurs noms ?
Bon appétit.

Fab
 

Fab117

XLDnaute Impliqué
Re : Insertion de photos via une macro

Resalut,
Je progresse gentiment grace à Hulk.
Maintenant ma macro va effectivement dans le bon répertoire chercher une photo et la ramène dans la bonne cellule. Et ce pour toutes les cellules concernée.
Toutefois, j'ai été obligée dans la macro de donner le nom de la photo => j'ai toujours la même (cf fichier attaché).

Une solution serait peut-être :

1) Créer le nombre de ligne désirées par l'utilisateur (fonctionne déjà)
2) Via une boucle, reporte le nom de tous les fichiers rencontrées dans "...\Photos300px" (je ne sais pas faire) dans les bonnes cellules (je sais faire)
3) Nouvelle boucle où il reprend les noms trouvés dans les cellules et les remplace par la photo correspondante (je devrais savoir le faire)

=> quelqu'un pourrait-il me dire comment reprendre le nom des fichiers du répertoire "...\Photos300px" ?

Merci d'avance.

Fab
 

Pièces jointes

  • Fab03.zip
    17.5 KB · Affichages: 19

Hulk

XLDnaute Barbatruc
Re : Insertion de photos via une macro

Hello,

Voici deux méthodes pour extraire des noms de fichiers.

L'une de Ti et l'autre de P. Erlandsen... Bravo à eux parce que bonjour !

Les deux sont best, mais dans ton cas, un petit faible pour celle de Ti (Module 1) car avec l'autre, elle met aussi tous les autres fichiers autres que .jpg.

Regarde aussi le coude du bouton du Module 2 !
 

Pièces jointes

  • Test extraction.zip
    18.9 KB · Affichages: 68
Dernière édition:

Fab117

XLDnaute Impliqué
Re : Insertion de photos via une macro

Hello,
J'ai essayé d'adapter ta proposition dans ma macro, mais ça ne fonctionne pas bien.
Faut dire que je ne comprend pas ce code.
N'existe-t-il une méthode plus simple pour rappatrier les noms de fichier d'un répertoire ?
Merci et bon week-end.

Fab
 

Fab117

XLDnaute Impliqué
Re : Insertion de photos via une macro

J'ai trouvé.

Set fso = CreateObject("Scripting.FileSystemObject")
Set fol = fso.getFolder(ThisWorkbook.Path & "\Photos300px")
For Each fil In fol.Files
Cells(LigneOuCollerLaPhoto, 1).Select
Cells(LigneOuCollerLaPhoto, 1) = fil.Name
LigneOuCollerLaPhoto = LigneOuCollerLaPhoto + 3
Next

Ci joint le résultat.
Je reviendrai la semaine prochaine chercher votre aide pour le redimensionnement automatique des photos.

Bon week-end

Fab
 

Pièces jointes

  • Fab05.zip
    22.4 KB · Affichages: 35

pierrejean

XLDnaute Barbatruc
Re : Insertion de photos via une macro

bonjour Fab117

Salut Hulk :)

Pour avoir le nom de tes fichiers

Code:
Sub nom_phot()
 CheminDAccesAuxPhotos = ThisWorkbook.Path & "\Photos300px\"
 myfile = Dir(CheminDAccesAuxPhotos & "*.jpg")
 While myfile <> ""
  MsgBox (myfile)
  myfile = Dir
 Wend
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Insertion de photos via une macro

Re

Et pour integrer les photos:

Code:
Sub nom_phot()
 CheminDAccesAuxPhotos = ThisWorkbook.Path & "\Photos300px\"
 myfile = Dir(CheminDAccesAuxPhotos & "*.jpg")
 LigneOuCollerLaPhoto = 7
 i = 1
 While myfile <> ""
   Cells(LigneOuCollerLaPhoto, 1) = "Photo" & i
   ActiveSheet.Pictures.Insert(CheminDAccesAuxPhotos & myfile).Select
   Selection.Top = Cells(LigneOuCollerLaPhoto, 1).Top
   Selection.Left = Cells(LigneOuCollerLaPhoto, 1).Left
   LigneOuCollerLaPhoto = LigneOuCollerLaPhoto + 3
   myfile = Dir
   i = i + 1
 Wend
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 976
Membres
103 076
dernier inscrit
LoneWolf90