range.hyperlinks.conut egale zero
bonjour Frogman21
cell.Hyperlinks.count donne zero simplement parce Range.Hyperlinks.Count compte les Hyperliens associes a une ou plage Range pas à un Picture.
Les images posees sur une feuille se trouvent dans ce cas dans Worksheet.Shapes y compris eventuellement les Boutons et toutes sortes de controles.
Il faut retrouver ton picture d'abord ,ensuite l'hyperlien associe.
Exemple code dans un Workbook ExcelVSTO
Code:
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
|
' dans l'exemple il y sur la feuille 1
' -un bouton
' -un image avec un 1er hyperlien
'- un range quelconque avec un 2eme hyperlien
Public Class Feuil1
Private Sub Feuil1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
End Sub
Private Sub Feuil1_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim wkSheet2 As Excel.Worksheet = Application.Worksheets(2)
Dim wkSheet3 As Excel.Worksheet = Application.Worksheets(3)
Dim workRange As Excel.Range = Nothing
'Affiche dans wkSheet3 le total des Hyperliens de
'la Feuille 1 ce qui donne 2
wkSheet3.Cells(1, 1) = "Tot HyperLiens Feuille1:" & Me.Hyperlinks.Count
'Le detail des Hyperliens
For col As Integer = 1 To Me.Hyperlinks.Count
wkSheet3.Cells(1, col + 1) = "Hyperlien N° : " & col & " Adress Cellule :" & Me.Hyperlinks.Item(col).SubAddress
Next
'les images,shapes dessines,les boutons (control ActiveX) sont
'references dans la collection Shapes de la feuille par type
'Pour retrouver un hyperlien associe à une image il faut
'retrouver un type image d'abord.
'Affiche dans wkSheet3 le total des images et index
wkSheet3.Cells(2, 1) = "Tot Images & Controles Feuille1:" & Me.Shapes.Count
'Retrouve l'image (unique ici) dans wkSheet
Dim monHyperlien As Excel.Hyperlink = Nothing
For col As Integer = 1 To Me.Shapes.Count
Dim shp As Excel.Shape = Me.Shapes.Item(col)
'si c'est une image
If shp.Type = Microsoft.Office.Core.MsoShapeType.msoPicture Then
wkSheet3.Cells(3, col + 1) = "Hyperlien Image N° : " & col.ToString & " Adress Cellule :" & shp.Hyperlink.SubAddress
'recupere le lien
MessageBox.Show("adresse Excel du lien :" & shp.Hyperlink.SubAddress)
monHyperlien = shp.Hyperlink
End If
Next
'Simule le "click" sur Hyperlien image
monHyperlien.Follow(NewWindow:=True)
'Adjust for better display
workRange = wkSheet3.Range(wkSheet3.Cells(1, 1), wkSheet3.Cells(10, 10))
workRange.EntireColumn.AutoFit()
End Sub
End Class |
bon code....