Convertit les références des cellules d'une formule entre les styles A1 et R1C1, ainsi que les types de référence relatif ou absolue, ou les deux
#include <Excel.au3>
_Excel_ConvertFormula ( $oExcel, $sFormula, $iFromStyle [, $iToStyle = Default [, $iToAbsolute = Default [, $vRelativeTo = Default]]] )
$oExcel | Objet application Excel |
$sFormula | Chaîne contenant la formule à convertir |
$iFromStyle | Le style de référence de la formule. Peut être toute valeur de l'énumération XlReferenceStyle |
$iToStyle | [optionnel] Une valeur de l'énumération XlReferenceStyle spécifiant le style de référence à retourner. En cas d'omission, le style de référence n'est pas modifiée |
$iToAbsolute | [optionnel] Une valeur de XlReferenceType qui spécifie le type de référence de convertion. Si cet argument est omis, le type de référence n'est pas modifiée |
$vRelativeTo | [optionnel] Un objet Range ou une plage A1 qui contient une cellule. Les références relatives se rapportent à cette cellule. Si omis, A1 est utilisée |
Succès: | Retourne la formule convertie sous forme de chaîne. |
Échec: | Retourne "" et définit @error <> 0. |
@error: | 1 - $oExcel n'est pas un objet ou n'est pas un objet application 2 - $vRelativeTo n'est pas un objet ou une plage invalide |
Les références R1C1 dépendent de la langue.
En anglais: "R10C5"(ligne 10 colonne 5), en allemand: "Z10S5"(Zeile 10 Spalte 5)
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un nouveau classeur Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookNew($oExcel) If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple", "Erreur lors de la création du nouveau classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; **************************************************************************** ; Convertit un objet Range A1 en R1C1 et inversement ; **************************************************************************** Local $sFormula = "C4:G12" ; Relatif: A1 en R1C1 Local $sR1C1 = _Excel_ConvertFormula($oExcel, $sFormula, $xlA1, $xlR1C1, $xlRelative) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple 1", "Erreur lors de la conversion de la formule dans le style R1C1." & @CRLF & "@error = " & @error & ", @extended = " & @extended) ; R1C1 en A1 Local $sA1 = _Excel_ConvertFormula($oExcel, $sR1C1, $xlR1C1, $xlA1, $xlRelative) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple 1", "Erreur lors de la conversion de la formule dans le style A1." & @CRLF & "@error = " & @error & ", @extended = " & @extended) ; Affiche le résultat MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple 1", "Type de conversion: Relatif" & @CRLF & " A1 en style R1C1: " & $sFormula & " to " & $sR1C1 & @CRLF & " R1C1 en style A1: " & $sR1C1 & " en " & $sA1) ; Absolue: A1 à R1C1 $sR1C1 = _Excel_ConvertFormula($oExcel, $sFormula, $xlA1, $xlR1C1, $xlAbsolute) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple 1", "Erreur lors de la conversion de la formule dans le style R1C1." & @CRLF & "@error = " & @error & ", @extended = " & @extended) ; R1C1 en A1 $sA1 = _Excel_ConvertFormula($oExcel, $sR1C1, $xlR1C1, $xlA1, $xlAbsolute) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple 1", "Erreur lors de la conversion de la formule dans le style A1." & @CRLF & "@error = " & @error & ", @extended = " & @extended) ; Affiche le résultat MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple 1", "Type de conversion: Absolue" & @CRLF & " A1 en style R1C1: " & $sFormula & " en " & $sR1C1 & @CRLF & " R1C1 en style A1: " & $sR1C1 & " en " & $sA1)
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un nouveau classeur Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookNew($oExcel) If @error Then MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple", "Erreur lors de la création du nouveau classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Convertit une formule du style A1 en R1C1 et utilise une référence relative ; ***************************************************************************** Local $sFormula = "=SUM(C4:G12)", $sReference = "B2" Local $sConverted = _Excel_ConvertFormula($oExcel, $sFormula, $xlA1, $xlR1C1, $xlRelative, $oExcel.Range($sReference)) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple 2", "Erreur lors de la conversion de la formule." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_ConvertFormula-Exemple 2", "Convertit une formule A1 en R1C1 et utilise " & $sReference & " comme référence relative:" & @CRLF & $sFormula & " en " & $sConverted)