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