Créer un diaporama html pour visionner vos photos
ou pour les publier sur le Web (VBA)
Publier une série de photos numériques ou d'images sur le Web, sans que la photo déborde de l'écran, avec un passage facile d'une photo à l'autre, en choisissant l'ordre de passage et en ajoutant des titres sur chaque image ?
Facile avec le petit programme VBA présenté ci-dessous.
(Voir aussi une version simplifiée ultrarapide en VBS, cliquez ici).
Comment ça marche ?
La macro VBA est liée à un fichier Excel contenant la liste des fichiers images et des titres et l'ordre de défilement.
La macro va créer une page html contenant
- une image (ou photo)
- un titre ou commentaire
- des liens "précédent" et "suivant" permettant de passer d'une photo à la suivante
- et quelques lignes de javascript incluant la liste des fichiers images et de leurs titres, et gérant le passage d'une photo à l'autre.
La page html :
La page s'appelle diapos.html. On l'utilise avec en argument le numéro de la photo à visionner : diapos.html?5 va afficher la cinquième photo.
La page html contient un tableau javascript im contenant la liste des noms des fichiers image et les titres correspondants : im[5][0] renvoie le nom du fichier de la cinquième image (par exemple "zaza.jpg") et im[5][1] renvoie le titre de cette image.
Pour afficher l'image correspondant au numéro passé en argument, le javascript executé à l'ouverture de la page va lire la chaine de caractères argument :
nume=document.location.search
A ce stade, nume contient "?5".
Puis le script va retirer le "?":
nume=1*nume.substring(1,nume.length)
Le nom du fichier peut alors être obtenu par im[nume][0] et le titre par par im[nume][1].
Il suffit alors d'utiliser document.write pour inscrire dans la page html la balise <IMG> qui va permettre l'affichage de la photo sélectionnée :
document.write("<IMG SRC='"+im[nume][0]+"'></IMG>")
Même procédure pour les liens vers la photo précédente ou vers la suivante, et pour afficher les titres :
document.write("<A HREF='"diapos.html?"+(nume+1)+"'>suivant</A>")
Ne manquent plus que quelques raffinements pour faire en sorte que l'image ne déborde pas de l'écran, et pour gérer le comportement des liens "suivant" et "précédent" au début et à la fin de la liste des images.
Le fichier Excel
Il contient un tableau de trois colonnes :
- le numéro d'ordre de l'image (ordre de défilement)
- le nom du fichier
- le titre associé à l'image
La macro VBA peut se charger de faire la liste de tous les fichiers images d'un répertoire, mais l'ordre des images et les titres peuvent être modifiés à la main.
La macro vba
Son rôle est de faciliter la création de la page html à partir des données du tableau Excel.
Elle permet aussi de lister les images d'un répertoire.
Une fois la liste établie, la macro va créer un fichier texte nommé diapos.html (placé dans le répertoire contenant les images), puis y inscrire le contenu de la page html, balises html et javascript, y compris le tableau contenant les noms et titres des fichiers image :
Set fichdiapo = fs.OpenTextFile(nomrep & "\" & "diapos.html", 2, True)
fichdiapo.WriteLine "<HTML>"
....
fichdiapo.WriteLine "<SCRIPT>document.write(""<IMG SRC='""+im[nume][0]+""'></IMG>"")</SCRIPT>"
fichdiapo.WriteLine "</BODY></HTML>"
fichdiapo.close
Notez l'utilisation de doubles guillemets quand on souhaite que WriteLine inscrive le signe guillemet.
Il suffit alors d'ouvrir le fichier diapos.html pour pouvoir examiner toutes les photos du répertoire. On peut même demander à la macro d'ouvrir le fichier html dès qu'elle l'a créé :
ThisWorkbook.FollowHyperlink nomrep & "\diapos.html", , True
Cliquez ici pour accéder au fichier "cree_diaporama.xls" (fichier zippé)
Cliquez ici pour accéder au texte de la macro VBA
Cliquez ici pour voir un exemple de diaporama html
Cliquez ici pour voir la version VBS du logiciel
Mode d'emploi rapide
Téléchargez le fichier Excel zippé. Ouvrez l'archive zip puis le fichier Excel (cree_diaporama.xls)
Cliquez sur le bouton "créer un nouveau diaporama"
Sélectionnez le répertoire contenant les images à visionner.
La macro va ouvrir un diaporama contenant toutes les images du répertoire, avec comme titres les noms de fichiers.
Pour modifier le diaporama, il suffit de mofifier le tableau Excel (numéros d'ordres de passage, choix des images à afficher, titres) puis de cliquer sur le bouton "Mettre à jour le diaporama".