Création d’un catalogue de photos à partir d’un dossier de photos (Microsoft Excel)
Glenn prépare un catalogue de toutes ses photos numériques dans Excel. Toutes les photos (environ 5000 d’entre elles) sont dans un seul dossier. Il aimerait insérer les photos à droite de la description de la photo, puis mettre un hyperlien vers toutes les photos pour agrandir la vignette à une photo plus grande.
En ce moment, Glenn le fait un par un et cela le rend fou, alors il cherche des moyens d’accélérer le processus.
La bonne nouvelle est que vous n’avez pas à devenir fou aussi vite; Excel fournit des macros qui peuvent rendre le travail plus rapide et plus facile. Avant de vous lancer dans cette discussion, cependant, vous voudrez peut-être réfléchir longuement avant de mettre toutes vos photos dans un classeur Excel.
Lorsque vous insérez une photo dans Excel, la taille de fichier de votre classeur est augmentée d’au moins la taille de fichier de la photo en cours d’insertion. Ainsi, si votre photo moyenne est de 1 Mo (assez petite avec les appareils photo d’aujourd’hui)
et vous insérez 5000 de ces photos, puis vous vous retrouvez avec un classeur contenant au moins 5 Go de photos. C’est un énorme classeur, et Excel pourrait avoir du mal à travailler avec autant d’informations. (La difficulté dépend de votre version d’Excel, de la quantité de mémoire dans votre système, de la vitesse de votre processeur, etc.)
Vous pourriez penser que la solution consiste à mettre à l’échelle les images lorsque vous les placez dans votre feuille de calcul, afin qu’elles soient plus petites. Bien que le redimensionnement d’une image la fasse paraître plus petite (elle semble plus petite dans la feuille de calcul), elle n’est pas vraiment plus petite. L’image en taille réelle est toujours là dans Excel.
Ainsi, vous ne réduisez pas du tout la taille du fichier de votre classeur en redimensionnant les photos.
La façon dont vous pouvez réduire la taille du fichier consiste à mettre à l’échelle les photos en dehors d’Excel, à l’aide d’un logiciel de retouche photo, avant qu’elles ne soient insérées dans Excel. En d’autres termes, vous devrez charger chacune des photos dans le logiciel de retouche photo, redimensionner les photos à la taille de vignette souhaitée, puis enregistrer la photo redimensionnée dans un nouveau fichier d’image miniature. (Vous ne voudriez généralement pas enregistrer l’image redimensionnée sur le dessus de votre photo d’origine.) Vous pouvez ensuite insérer chaque vignette dans votre feuille de calcul Excel et la taille de votre classeur résultant serait plus petite, bien qu’elle soit toujours directement liée à la taille globale de les photos miniatures que vous ajoutez à la feuille de calcul.
Si vous souhaitez toujours insérer toutes les photos dans votre feuille de calcul, vous pouvez le faire à l’aide d’une macro. L’exemple suivant, PhotoCatalog, peut rechercher toutes les photos miniatures et les insérer dans la feuille de calcul, avec un lien hypertexte vers la photo complète. Il suppose quatre choses: (1) vos photos et miniatures sont toutes des images JPG, (2) les photos sont dans le répertoire c: \ Photos \, (3) les miniatures sont dans le répertoire c: \ Photos \ Thumbnails \, et (4) les miniatures ont les mêmes noms de fichier que les photos en taille réelle.
Sub PhotoCatalog() Dim i As Double Dim xPhoto As String Dim sLocT As String Dim sLocP As String Dim sPattern As String sLocT = "c:\Photos\Thumbnails\" sLocP = "c:\Photos\" sPattern = sLocT & "*.jpg" Application.EnableEvents = False Application.ScreenUpdating = False Range("A1").Select ActiveCell.FormulaR1C1 = "Description" Range("B1").Select ActiveCell.FormulaR1C1 = "Thumbnail" Range("C1").Select ActiveCell.FormulaR1C1 = "Hyperlink" Range("A1:C1").Select With Selection.Font .Name = "Arial" .FontStyle = "Bold" .Size = 12 .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With i = 1 On Error GoTo 0 xPhoto = Dir(sPattern, vbNormal) Do While xPhoto <> "" i = i + 1 Range("B" & i).Select ActiveSheet.Pictures.Insert(sLocT & xPhoto).Select With Selection.ShapeRange .LockAspectRatio = msoTrue .Height = 54# .PictureFormat.Brightness = 0.5 .PictureFormat.Contrast = 0.5 .PictureFormat.ColorType = msoPictureAutomatic End With Range("C" & i).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, _ Address:= sLocP & xPhoto, TextToDisplay:=xPhoto xPhoto = Dir Loop Application.EnableEvents = True Application.ScreenUpdating = True End Sub
L’exécution de cette macro peut prendre un certain temps, selon le type de système que vous utilisez et le nombre de photos que vous cataloguez.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (7484) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.