Prüft Datengültigkeit im angegebenen Bereich
#include <Excel.au3>
_Excel_RangeValidate ( $oWorkbook, $vWorksheet, $vRange, $iType, $sFormula1 [, $iOperator = Default [, $sFormula2 = Default [, $bIgnoreBlank = True [, $iAlertStyle = $xlValidAlertStop [, $sErrorMessage = Default [, $sInputMessage = Default]]]]]] )
$oWorkbook | Excel Arbeitsbuch-Objekt |
$vWorksheet | Name, Index oder Arbeitsblatt-Objekt. Wird das Schlüsselwort Default gesetzt, so wird das aktive Arbeitsblatt verwendet |
$vRange | Ein Bereichs-Objekt, ein A1 Bereich oder das Schlüsselwort Default um alle Zellen im angegebenen Arbeitsblatt zu prüfen |
$iType | Der Prüftyp. Muss eine Konstante der XlDVType Aufzählung sein |
$sFormula1 | Der erste Teil der Datenprüfungs-Gleichung |
$iOperator | [optional] Der Datenprüfungs-Operator. Kann eine Konstante der XlFormatConditionOperator Aufzählung sein (Standard = Schlüsselwort Default) |
$sFormula2 | [optional] Der zweite Teil der Datenprüfungs-Gleichung wenn $iOperator $xlBetween oder $xlNotBetween ist. Ansonsten wird der Parameter ignoriert (Standard = Schlüsselwort Default) |
$bIgnoreBlank | [optional] Wenn auf True gesetzt, wird der Zelleninhalt als gültig erkannt, wenn die Zelle leer ist (Standard = True) |
$iAlertStyle | [optional] Definiert das Icon, das in Meldungsboxen während der Prüfung angezeigt wird. Kann eine Konstante der XlDVAlertStyle Aufzählung sein (Standard = $xlValidAlertStop) |
$sErrorMessage | [optional] Nachricht die in der MsgBox angezeigt werden soll, wenn ungültige Daten eingegeben wurden (Standard = Schlüsselwort Default) |
$sInputMessage | [optional] Nachricht, die im ToolTip angezeigt werden soll, wenn angefangen wird, Daten einzugeben (Standard = Schlüsselwort Default) |
Erfolg: | Das Bereichs-Objekt. |
Fehler: | 0 und setzt @error. |
@error: | 1 - $oWorkbook ist kein Objekt oder kein Arbeitsbuch-Objekt 2 - $vWorksheet Name oder Index ist falsch oder $vWorksheet ist kein Arbeitsblatt-Objekt. @extended ist auf den COM Fehlercode gesetzt 3 - $vRange ist falsch. @extended ist auf den COM Fehlercode gesetzt 4 - Fehler wurde von der Add-Methode zurückgegeben. @extended ist auf den COM Fehlercode gesetzt |
Der Parameter $bDisplayAlerts der Funktion _Excel_Open muss auf True gesetzt sein um die $sErrorMessage anzuzeigen.
Wenn gegen eine Liste von Werten geprüft werden soll, die in einem anderen Zellenbereich gespeichert ist ($iType = $xlValidateList), dann muss $sFormula1 mit "=" beginnen (z.B. "=C:C").
Vor dem Hinzufügen einer neuen Prüfungsregel zu einem Bereich löscht die Funktion existierende Prüfungsregeln in dem Bereich.
#include <Excel.au3>
#include <MsgBoxConstants.au3>
; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open(True, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "Fehler beim Erstellen einer neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf
; Nur Werte aus einer Liste sind gültig
_Excel_RangeValidate($oWorkbook, Default, "A1:A10", $xlValidateList, "Ja;Nein;Weiß nicht")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 1", "Fehler beim Setzen der Bereichsüberprüfung." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 1", "Validierung anhand einer Liste von Werten, die erfolgreich für den Bereich 'A1:A10' festgelegt wurden.")
#include <Excel.au3>
#include <MsgBoxConstants.au3>
; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open(True, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "Fehler beim Erstellen einer neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf
; Nur Werte aus einer in einem Zellbereich (Spalte 'D') definierten Liste sind gültig
; Werte in einen Bereich schreiben
Local $aValidation[] = ["10", "20", "30", "40", "50"]
_Excel_RangeWrite($oWorkbook, Default, $aValidation, "D1")
; Nur Werte aus dem Bereich sind gültig
_Excel_RangeValidate($oWorkbook, Default, "C:C", $xlValidateList, "=D:D")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 2", "Fehler beim Setzen der Bereichsüberprüfung." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 2", "Validierung gegen eine Liste von Werten im Zellbereich '=D:D' erfolgreich für Spalte 'C' gesetzt.")
#include <Excel.au3>
#include <MsgBoxConstants.au3>
; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open(True, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "Fehler beim Erstellen einer neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf
; Nur numerische Werte sind gültig
_Excel_RangeValidate($oWorkbook, Default, "B:B", $xlValidateDecimal, 0, $xlGreater, Default, Default, $xlValidAlertStop, "Sie haben einen nicht numerischen Wert eingegeben!", "Nur numerische Werte sind gültig.")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 3", "Fehler beim Setzen der Bereichsüberprüfung." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 3", "In Spalte 'B' sind nur numerische Werte gültig.")
#include <Excel.au3>
#include <MsgBoxConstants.au3>
; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open(True, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "Fehler beim Erstellen einer neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf
; Benutzerdefinierte Validierung. Die Summe aller Zellen in Spalte 'E' muss < 100 sein.
_Excel_RangeValidate($oWorkbook, Default, "E:E", $xlValidateCustom, "=SUM(E:E)<=100", Default, Default, Default, Default, "Summe aller Zellen in Spalte 'E' < 100.")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 4", "Fehler beim Setzen der Bereichsüberprüfung." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 4", "Die Summe aller Zellen in Spalte 'E' muss < 100 sein.")