UDF > Excel >


_Excel_RangeLinkAddRemove

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]]] )

Paramètres

$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)

Valeur de retour

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

Remarque

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.

Exemples

Exemple 1

#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'.")

Exemple 2

#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.")