Editer en HTML un organigramme construit sous Excel

 

Excel permet de réaliser et de mettre à jour très commodément des organigrammes.
La publication sur le Web de ces organigrammes peut se faire avec un lien sur le fichier Excel, ou bien après convertion en fichier .pdf, plus facile à manipuler.
Ces techniques présentent toutefois l'inconvénient d'une certaine lourdeur pour l'utilisateur (temps d'accès plus long que celui d'une simple page html).
On peut éviter ce problème en transformant l'organigramme en image (.gif ou .jpg), mais on pert l'interactivité :
Il est en effet souvent intéressant d'ajouter des liens hypertexte pointant par exemple vers des sous-organigrammes.

Deux solutions proposées ici :
- la première consiste à transformer l'organigramme Excel en page HTML par macro VBA.
- La seconde à copier l'organigramme Excel sous forme d'image (.gif ou .jpg) et à découper l'image en zones actives par "MAP".

1) Page HTML recréée par VBA

En partant d'un organigramme construit sur une feuille Excel avec des bordures de cellules :


...le programme transforme cellule par cellule la zone active de la feuille Excel en table HTML.
Voir l'organigramme HTML ainsi créé.

Télécharger le logiciel (fichier .zip, 27 ko)


Pour les anciens navigateurs HTML qui ne reconnaitraient pas les "styles de bordures", on peut utiliser une autre technique, un peu plus laborieuse :
le programme crée d'abord une feuille Excel intermédiaire dans laquelle toutes les bordures sont transformées en cellules très étroites.
Cette nouvelle feuille Excel est ensuite convertie (cellule par cellule) au format html.
Voir l'organigramme HTML ainsi créé.

Télécharger le logiciel (fichier .zip, 27 ko)


2) Organigramme en image avec zones actives :

L'organigramme (feuille Excel) est copié comme une image (dans le presse-papiers) :
Sheets("feuil1").UsedRange.CopyPicture Appearance:=xlScreen, Format:=xlPicture
puis collé dans une feuille graphique créée à cet effet :
Charts.Add.Paste
puis la feuille graphique (gr) est exportée au format .gif :
gr.Export ThisWorkbook.Path & "\rien.gif", "GIF"
On peut alors créer la page Web fich = ThisWorkbook.Path & "\test_map.html"
Open fich For Output As 1
'creation Code html
Print #1, "<HTML>" & Chr$(13)
Print #1, "<BODY BGCOLOR='WHITE'><CENTER>" & Chr$(13)
puis parcourir les cellules (cel) de l'organigramme et utiliser leurs coordonnées pour définir les zones actives
et recopier leurs liens (hypertexte) : Print #1, "<AREA SHAPE='rectangle' COORDS='" & cel.Left & "," & cel.Top & "," & cel.Left + cel.Width & "," & cel.Top + cel.Height & "' HREF='" & cel.Hyperlinks(1).Address & "'>" Il suffit d'afficher l'image en liaison avec la carte de zones actives pour obtenir l'organigramme au format .gif avec liens. Dans l'exemple ci-dessous, il suffit de cliquer sur le nom d'une personne pour lui envoyer un message :
cliquer ici pour voir le texte complet de la macro

Télécharger le logiciel (fichier .zip, 16 ko)