1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250
| Option Explicit
Option Compare Text
Dim maPageHtml As HTMLDocument
Private Sub UserForm_Initialize()
Dim NumCol As Integer, j As Integer
Dim NumLig As Integer, k As Integer
Dim Cell As Range
Dim Image1 As String, Image2 As String
'--- Spécifie les images qui s'affichent dans les noeuds.
'Les images doivent être dans le même répertoire que le classeur.
Image1 = ThisWorkbook.Path & "\redball.gif"
Image2 = ThisWorkbook.Path & "\grnarrow.gif"
'Supprime le contenu de l'ImageList
Me.ImageList1.ListImages.Clear
'chargement des images
Me.ImageList1.ListImages.Add 1, "Img1", LoadPicture(Image1)
Me.ImageList1.ListImages.Add 2, "Img2", LoadPicture(Image2)
'Associe les images au TreeView
Set Me.TreeView1.ImageList = Me.ImageList1
'---
'Boucle sur les éléments de la structure pour remplir le TreeView
For Each Cell In Feuil2.Range("A1:A" & Feuil2.Range("N65533").End(xlUp).Row)
NumCol = Cell.End(xlToRight).Column
NumLig = Cell.Row
If NumCol = 2 Then
TreeView1.Nodes.Add , , "maClé" & NumLig & NumCol, _
UCase(Feuil2.Cells(NumLig, NumCol)), "Img1", "Img1"
Else
k = Feuil2.Cells(NumLig, NumCol).Offset(0, -1).End(xlUp).Row
j = Feuil2.Cells(NumLig, NumCol).Offset(0, -1).Column
'S'il s'agit d'un membre de l'équipe:
'(Dans ce cas la colonne N contient la lettre "x")
If Feuil2.Cells(NumLig, 14) = "x" Then
TreeView1.Nodes.Add _
"maClé" & k & j, tvwChild, "maClé" & NumLig & NumCol, _
Feuil2.Cells(NumLig, NumCol), "Img2", "Img2"
Else
'S'il s'agit d'un titre de service:
TreeView1.Nodes.Add _
"maClé" & k & j, tvwChild, "maClé" & NumLig & NumCol, _
UCase(Feuil2.Cells(NumLig, NumCol)), "Img1", "Img1"
End If
End If
Next Cell
TreeView1.Style = 5
End Sub
Private Sub UserForm_Activate()
'Pour afficher l'UserForm en plein écran
'With Me
'.StartUpPosition = 3
'.Width = Application.Width
'.Height = Application.Height
'.Left = 0
'.Top = 0
'End With
End Sub
'Déploie l'ensemble du TreeView si la checkBox
'"Déployer la totalité de l'arborescence" est cochée.
Private Sub CheckBox1_Click()
Dim i As Byte
If CheckBox1 Then
'Boucle sur tous les noeuds du TreeView.
For i = 1 To TreeView1.Nodes.Count
TreeView1.Nodes.Item(i).Expanded = True
Next
Else
For i = 1 To TreeView1.Nodes.Count
TreeView1.Nodes.Item(i).Expanded = False
Next
End If
'Positionne le 1er noeud dans la partie visible du TreeView
TreeView1.Nodes.Item(1).EnsureVisible
End Sub
'Evenement Clic sur un élément du treeView.
Private Sub TreeView1_Click()
Dim leNom As String, Fichier As String
Dim Pays As String, Fichier2 As String
'Vérifie si l'élément sélectionné correspond à une personne ou à un titre
'de service.
'(La colonne N contient la lettre "x" s'il s'agit d'une personne)
If Feuil2.Cells(TreeView1.SelectedItem.Index, 14) <> "" Then
'Affiche les informations sur la personne sélectionnée.
Label2 = TreeView1.SelectedItem.Text
Label3 = "Téléphone Travail : " & Feuil2.Cells(TreeView1.SelectedItem.Index, 15)
Label4 = "Téléphone Portable : " & Feuil2.Cells(TreeView1.SelectedItem.Index, 16)
Label7 = "Fonction à la DA : " & Feuil2.Cells(TreeView1.SelectedItem.Index, 17)
Label8 = "Situation Familliale : " & Feuil2.Cells(TreeView1.SelectedItem.Index, 18)
Label9 = "Date de Naissance : " & Feuil2.Cells(TreeView1.SelectedItem.Index, 19)
Label10 = "Adresse Maïl : " & Feuil2.Cells(TreeView1.SelectedItem.Index, 20)
Label11 = "Origine : " & Feuil2.Cells(TreeView1.SelectedItem.Index, 21)
Label12 = "Pays : " & Feuil2.Cells(TreeView1.SelectedItem.Index, 22)
'Label5 = "Fonction : " & TreeView1.SelectedItem.Parent
leNom = TreeView1.SelectedItem.Text
Pays = Feuil2.Cells(TreeView1.SelectedItem.Index, 22)
'Définit l'image associée au nom sélectioné.
Fichier = ThisWorkbook.Path & "\" & leNom & ".jpg"
Fichier2 = ThisWorkbook.Path & "\" & Pays & ".jpg"
'Vérifie si le fichier image existe dans le répertoire
If Dir(Fichier) <> "" Then
'Charge l'image si elle existe.
Image1.Picture = LoadPicture(Fichier)
Else
End If
If Dir(Fichier2) <> "" Then
'Charge l'image si elle existe.
Image2.Picture = LoadPicture(Fichier2)
Else
End If
'Sinon fait le ménage dans le contrôle Image
Set Image1.Picture = Nothing
Set Image2.Picture = Nothing
End If
End If
End Sub
'Affichage du trombinoscope:
'(Création d'une planche contact pour visualiser les images dans le WebBrowser)
Private Sub CommandButton1_Click()
Dim Fichier, Fichier2 As String
Dim S As String, X As String, chemin As String
Dim ProprietesImages As String
If WebBrowser1.Visible = True Then
WebBrowser1.Visible = False
Label1.Visible = True
CheckBox1.Visible = True
CommandButton1.Caption = "Visualiser le trombinoscope"
Exit Sub
End If
Label1.Visible = False
CheckBox1.Visible = False
WebBrowser1.Visible = True
CommandButton1.Caption = "Visualiser l'organigramme"
'Répertoire contenant le classeur
chemin = ThisWorkbook.Path
'Recherche des images jpg dans le repertoire
Fichier = Dir(chemin & "\*.jpg")
'Création d'une page html qui s'affichera dans le WebBrowser
Open ThisWorkbook.Path & "\browserImage.html" For Output As #1
Print #1, "<HTML>"
Print #1, "<HEAD>"
Print #1, "<TITLE>" & chemin & "</TITLE>"
Do
S = chemin & "\" & Fichier
ProprietesImages = Left(Fichier, Len(Fichier) - 4)
'création vignette
X = "<A><IMG WIDTH=120 HEIGHT=120 SRC='" & S & _
"'ALT='" & ProprietesImages & "'></IMG></A>"
'création vignette et lien hypertexte pour chaque image
'X = "<A href='" & S & "'><IMG WIDTH=90 HEIGHT=90 SRC='" & S & _
"'ALT='" & ProprietesImages & "'></IMG></A>"
Print #1, X
Fichier = Dir
Loop Until Fichier = ""
Close #1
'Affiche la page html dans le WebBrowser.
WebBrowser1.Navigate ThisWorkbook.Path & "\browserImage.html"
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Suppression de la page html (si elle existe) lors de la fermerture de l'USF
If Dir(ThisWorkbook.Path & "\browserImage.html") <> "" Then _
Kill ThisWorkbook.Path & "\browserImage.html"
End Sub
'Cet évènement est déclenché lorsqu'une page est totalement chargée dans le WebBrowser:
'Dans cet exemple, toutes les images de la page html sont prises en compte dans
'le module de classe dès que la page est chargée.
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim Cl As Classe1
Dim i As Integer
Dim imgHtml As HTMLImg
Set Collect = New Collection
Set maPageHtml = WebBrowser1.Document
'Boucle sur les images contenues dans le WebBrowser
For i = 0 To maPageHtml.images.Length - 1
Set imgHtml = maPageHtml.images.Item(i)
'ajoute l'objet dans la classe
Set Cl = New Classe1
Set Cl.Imge = imgHtml
Collect.Add Cl
Next i
End Sub
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, _
URL As Variant, Flags As Variant, TargetFrameName As Variant, _
PostData As Variant, Headers As Variant, Cancel As Boolean)
'Fait le ménage avant d'afficher une nouvelle page
Set Collect = Nothing
Set maPageHtml = Nothing
End Sub |
Partager