UDF > Excel >


_Excel_ConvertFormula

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

Paramètres

$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

Valeur de retour

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

Remarque

Les références R1C1 dépendent de la langue.
En anglais: "R10C5"(ligne 10 colonne 5), en allemand: "Z10S5"(Zeile 10 Spalte 5)

Exemples

Exemple 1

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


Exemple 2

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