Ajoute la validation des données à la plage spécifiée
#include <Excel.au3>
_Excel_RangeValidate ( $oWorkbook, $vWorksheet, $vRange, $iType, $sFormula1 [, $iOperator = Default [, $sFormula2 = Default [, $bIgnoreBlank = True [, $iAlertStyle = $xlValidAlertStop [, $sErrorMessage = Default [, $sInputMessage = Default]]]]]] )
$oWorkbook | Objet classeur Excel |
$vWorksheet | Nom, index ou objet feuille de calcul. Si la valeur est Default, la feuille active sera utilisée |
$vRange | Un objet plage, une plage $xlA1 ou le mot-clé Default pour valider toutes les cellules de la feuille de calcul spécifiée |
$iType | Le type de validation. Peut être toute valeur de l'énumération XlDVType |
$sFormula1 | La première partie de l'équation de la validation des données |
$iOperator | [optionnel] L'opérateur de validation des données. Peut être toute valeur de l'énumération XlFormatConditionOperator (par défaut = mot-clé Default ) |
$sFormula2 | [optionnel] La deuxième partie de la validation des données lorsque $iOperator est $xlBetween ou $xlNotBetween. Sinon, il est ignoré (par défaut = mot-clé Default) |
$bIgnoreBlank | [optionnel] Si la valeur est True, la donnée de la cellule est considérée comme valide si la cellule est vide (valeur par défaut = True) |
$iAlertStyle | [optionnel] Le style d'alerte de validation. Peut être toute valeur de l'énumération XlDVAlertStyle (par défaut = $xlValidAlertStop) |
$sErrorMessage | [optionnel] Message à afficher dans un MsgBox lorsqu'une donnée invalide a été saisi (par défaut = mot-clé Default ) |
$sInputMessage | [optionnel] Message à afficher dans une info-bulle lorsque vous commencez à entrer des données (par défaut = mot-clé Default ) |
Succès: | Retourne l'objet plage. |
É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 $vWorksheet n'est pas valide ou $vWorksheet n'est pas un objet feuille de calcul. @extended contient le code d'erreur COM 3 - $vRange n'est pas valide. @extended contient le code d'erreur COM 4 - Erreur renvoyée par la méthode Add. @extended contient le code d'erreur COM |
Le paramètre $bDisplayAlerts de la fonction _Excel_Open doit être mis à True pour afficher $sErrorMessage.
Si vous souhaitez valider de nouveau une liste de valeurs stockées dans une autre plage de cellules ( $iType = $xlValidateList ) alors $sFormula1 doit commencer par un "=" (par exemple "=C:C").
Avant d'ajouter une nouvelle règle de validation à une plage, la fonction supprime les règles de validation existantes pour la plage.
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un classeur Local $oExcel = _Excel_Open(True, True) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-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_RangeValidate-Exemple", "Erreur lors de la création du nouveau classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Seules les valeurs de la liste sont valides ; ***************************************************************************** _Excel_RangeValidate($oWorkbook, Default, "A1:A10", $xlValidateList, "Yes;No;Don't know") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-Exemple 1", "Erreur lors de la validation de la plage." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-Exemple 1", "Validation par rapport à une liste de valeurs définie avec succès pour la plage 'A1:A10'.")
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un classeur exemple Local $oExcel = _Excel_Open(True, True) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-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_RangeValidate-Exemple", "Erreur lors de la création du nouveau classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Seules les valeurs à partir d'une liste définie dans une plage de cellules (colonne 'D') sont valides ; ***************************************************************************** ; Écrit des valeurs dans une plage Local $aValidation[] = ["10", "20", "30", "40", "50"] _Excel_RangeWrite($oWorkbook, Default, $aValidation, "D1") ; Seules les valeurs de la plage sont valides _Excel_RangeValidate($oWorkbook, Default, "C:C", $xlValidateList, "=D:D") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-Exemple 2", "Erreur lors de la validation de la plage." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-Exemple 2", "Validation par rapport à une liste de valeurs définie avec succès pour la colonne 'C'.")
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un classeur Local $oExcel = _Excel_Open(True, True) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-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_RangeValidate-Exemple", "Erreur lors de la création du nouveau classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Seules les valeurs numériques sont valides ; ***************************************************************************** _Excel_RangeValidate($oWorkbook, Default, "B:B", $xlValidateDecimal, 0, $xlGreater, Default, Default, $xlValidAlertStop, "You entered a non numeric value!", "Only numeric values are valid.") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-Exemple 3", "Erreur lors de la validation de la plage." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-Exemple 3", "Seulement des valeurs numériques sont valides dans la colonne 'B'.")
#include <Excel.au3> #include <MsgBoxConstants.au3> ; Crée un objet Excel et ouvre un classeur Local $oExcel = _Excel_Open(True, True) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-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_RangeValidate-Exemple", "Erreur lors de la création du nouveau classeur." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Validation personnalisée: la somme de toutes les cellules dans la colonne 'E' doit être < 100 ; ***************************************************************************** _Excel_RangeValidate($oWorkbook, Default, "E:E", $xlValidateCustom, "=SUMME(E:E)<=100", Default, Default, Default, Default, "Somme de toutes les cellules de la colonn 'E' > 100.") If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-Exemple 4", "Erreur lors de la validation de la plage." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_RangeValidate-Exemple 4", "La somme de toutes les cellules de la colonne 'E' est < 100.")