UDF > Excel >


_Excel_RangeValidate

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

Paramètres

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

Valeur de retour

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

Remarques

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.

Exemples

Exemple 1

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


Exemple 2

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


Exemple 3

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


Exemple 4

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