Ajoute ou supprime un lien hypertexte vers/depuis une plage
#include <Excel.au3>
_Excel_RangeLinkAddRemove ( $oWorkbook, $vWorksheet, $vRange, $sAddress [, $sSubAddress = Default [, $sScreenTip = Default [, $sTextToDisplay = Default]]] )
$oWorkbook | Objet classeur Excel |
$vWorksheet | Nom, index ou objet de feuille de calcul à utiliser. Si la valeur est le mot-clé Default, la feuille active sera utilisée |
$vRange | Un objet plage ou une plage au format $xlA1 où définir le lien hypertexte |
$sAddress | L'adresse du lien spécifié. L'adresse peut être une adresse e-mail, une adresse Internet ou un nom de fichier. "" supprime un lien hypertexte existant |
$sSubAddress | [optionnel] Le nom de l'emplacement du fichier de destination, comme un signet, une plage nommée ou un numéro de diapositive (par défaut = mot-clé Default = None) |
$sScreenTip | [optionnel] Le texte qui apparaît dans une bulle lorsque le pointeur de la souris est positionné sur le lien hypertexte spécifiée (par défaut = mot-clé Default = la valeur de $sAddress) |
$sTextToDisplay | [optionnel] Le texte qui sera affiché pour le lien hypertexte (par défaut = mot-clé Default = None) |
Succès: | Retourne un objet Hyperlinks quand un lien est défini ou 1 quand un lien est supprimé. |
Échec: | Retourne 0 et définit @error <> 0. |
@error: | 1 - $oWorkbook n'est pas un objet ou n'est pas un objet classeur 2 - Le nom ou l'index de $vWorksheet n'est pas valide ou $vWorksheet n'est pas un objet Worksheet (feuille de calcul). @extended contient le code d'erreur COM 3 - $vRange n'est pas valable. @extended contient le code d'erreur COM 4 - Une erreur s'est produite lors de l'ajout/la suppression du lien hypertexte. @extended contient le code d'erreur COM |
Notez qu'Excel écrit seulement $sTextToDisplay dans la cellule du coin supérieure gauche de la plage (si la cellule est vide). Les cellules restantes de la plage restent inchangées.
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un classeur Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeLinkAddRemove-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls") If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeLinkAddRemove-Exemple", "Erreur lors de l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; Ajoute un lien vers les cellules A1:C1 _Excel_RangeLinkAddRemove($oWorkbook, $oWorkbook.Activesheet, "A1:C1", "http://www.autoitscript.com", Default, "AutoIt Homepage") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeLinkAddRemove-Exemple 1", "Erreur lors du paramétrage hyperlink." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeLinkAddRemove-Exemple 1", "Lien installé vers les cellules 'A1:C3'.") ; Supprime le lien vers la cellule A1:C1 _Excel_RangeLinkAddRemove($oWorkbook, $oWorkbook.Activesheet, "A1:C1", "") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeLinkAddRemove-Exemple 2", "Erreur lors du paramétrage hyperlink." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeLinkAddRemove-Exemple 2", "Lien supprimé vers les cellules 'A1:C3'.")
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un exemple de classeur Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: Exemple _Excel_RangeLinkAddRemove", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True) If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: Exemple _Excel_RangeLinkAddRemove", "Erreur dans l'ouverture du classeur '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; Insère une feuille d'index contenant les liens vers toutes les autres feuilles. ; Gère les noms des feuilles avec des espaces corrects. Local $oSheet = _Excel_SheetAdd($oWorkbook, 1, True, 1, "Index") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: Exemple3 _Excel_RangeLinkAddRemove", "Erreur dans l'ajout de la feuille." & @CRLF & "@error = " & @error & ", @extended = " & @extended) $oSheet.Range("A1").Value = "Index" Local $iRow = 2 For $iSheet = 2 To $oWorkbook.Sheets.Count $oSheet.Cells($iRow, 1).Value = $iRow - 1 $oSheet.Cells($iRow, 2).Value = $oWorkbook.Worksheets($iRow).Name _Excel_RangeLinkAddRemove($oWorkbook, $oSheet, $oSheet.Cells($iRow, 2), $oWorkbook.Fullname, "'" & $oSheet.Cells($iRow, 2).Value & "'!A1") $iRow = $iRow + 1 Next MsgBox($MB_SYSTEMMODAL, "UDF Excel: Exemple3 _Excel_RangeLinkAddRemove", "La feuille d'index est insérée comme feuille 1.")