Comment : stocker et récupérer des valeurs de date dans des plages Excel
Mise à jour : novembre 2007
S'applique à |
---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés. Type de projet
Version de Microsoft Office
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
Vous pouvez stocker et extraire des valeurs dans un contrôle NamedRange ou un objet de plage Excel natif.
Si vous stockez une valeur de date qui tombe le 1/1/1900 ou après dans une plage à l'aide de Visual Studio Tools pour Office, elle est stockée au format OLE Automation (OA). Vous devez utiliser la méthode FromOADate pour récupérer la valeur des dates OLE Automation. Si la date est antérieure au 1/1/1900, elle est stockée comme une chaîne.
Remarque : |
---|
Les dates Excel diffèrent des dates OLE Automation pour les deux premiers mois de 1900. Il existe également des différences si l'option Calendrier depuis 1904 est activée. Les exemples de code ci-dessous ne traitent pas ces différences. |
Utilisation d'un contrôle NamedRange
- Cet exemple illustre des personnalisations au niveau du document. Le code suivant doit être placé dans une classe Sheet, et non dans la classe ThisWorkbook.
Pour stocker une valeur de date dans une plage nommée
Créez un contrôle NamedRange dans la cellule A1.
Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _ Me.Controls.AddNamedRange(Me.Range("A1"), "NamedRange1")
Microsoft.Office.Tools.Excel.NamedRange NamedRange1 = this.Controls.AddNamedRange(this.get_Range("A1", missing), "NamedRange1");
Définissez la date d'aujourd'hui comme valeur pour NamedRange1.
Dim dt As DateTime = DateTime.Now NamedRange1.Value2 = dt
DateTime dt = DateTime.Now; NamedRange1.Value2 = dt;
Pour récupérer une valeur de date d'une plage nommée
Récupérez la valeur de date de NamedRange1.
Dim value As Object = NamedRange1.Value2 If Not value Is Nothing Then If TypeOf value Is Double Then dt = DateTime.FromOADate(CType(value, Double)) Else DateTime.TryParse(CType(value, String), dt) End If End If MessageBox.Show(dt.ToString())
object value = NamedRange1.Value2; if (value != null) { if (value is double) { dt = DateTime.FromOADate((double)value); } else { DateTime.TryParse((string)value, out dt); } } MessageBox.Show(dt.ToString());
Utilisation de plages Excel natives
Pour stocker une valeur de date dans un objet de plage Excel natif
Créez un Range qui présente la cellule A1.
Dim rng As Excel.Range = Me.Application.Range("A1")
Excel.Range rng = this.Application.get_Range("A1", missing);
Définissez la date d'aujourd'hui comme valeur pour rng.
Dim dt As DateTime = DateTime.Now rng.Value2 = dt
DateTime dt = DateTime.Now; rng.Value2 = dt;
Pour extraire une valeur de date à partir d'un objet de plage Excel natif
Récupérez la valeur de date de rng.
Dim value As Object = rng.Value2 If Not value Is Nothing Then If TypeOf value Is Double Then dt = DateTime.FromOADate(CType(value, Double)) Else DateTime.TryParse(CType(value, String), dt) End If End If System.Windows.Forms.MessageBox.Show(dt.ToString())
object value = rng.Value2; if (value != null) { if (value is double) { dt = DateTime.FromOADate((double)value); } else { DateTime.TryParse((string)value, out dt); } } System.Windows.Forms.MessageBox.Show(dt.ToString());
Voir aussi
Tâches
Comment : envoyer des valeurs à des cellules de feuilles de calcul
Comment : faire référence aux plages de la feuille de calcul dans le code
Comment : ajouter des contrôles NamedRange aux feuilles de calcul
Concepts
Vue d'ensemble du modèle objet Excel
Fonctionnement des paramètres optionnels dans les solutions Office