2010-03-23 8 views
1

Je souhaite créer une plage de validation dans la cellule "A1". Cette validation permet à l'utilisateur d'entrer la valeur de 1 à x, tandis que x se réfère à la valeur entrée par l'utilisateur dans "B1". Par exemple, si l'utilisateur saisit la valeur 100 dans "B1" alors nous pouvons entrer seulement 1 à 100 dans la cellule "A1".Comment créer une plage de validation à partir de la valeur entrée par l'utilisateur?

Je veux savoir comment faire cela en C#?

+0

Utilisez-vous VSTO pour cela? – R0MANARMY

+0

Je ne suis pas sûr, j'ai installé seulement .NET Framework 3.5 – Anonymous

Répondre

1

En supposant que vous avez interop, ce serait comme ci-dessous. Notez xlValidateWholeNumber, qui peut être changé en xlValidateDecimal (et la formule suivante 1 ci-dessous devrait être une décimale) pour les décimales).

private void SetValidationBetweenNumbers() 
{ 

    Microsoft.Office.Tools.Excel.NamedRange cellThatNeedsValidating = 
     this.Controls.AddNamedRange(this.Range[""A1"", missing], 
     "cellThatNeedsValidating"); 

    cellThatNeedsValidating.Validation.Add( 
     Excel.XlDVType.xlValidateWholeNumber, 
     Excel.XlDVAlertStyle.xlValidAlertStop, 
     Excel.XlFormatConditionOperator.xlBetween, "1", "=B1"); 
}