Partager via


Comment : stocker et récupérer des valeurs de date dans des plages Excel par programmation

Vous pouvez stocker et extraire des valeurs dans un contrôle NamedRange ou un objet de plage Excel natif.

S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau document et de niveau application pour Excel 2013 et Excel 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.

Si vous stockez une valeur de date d'une plage égale ou supérieure au 01/01/1900 à l'aide des outils de développement Office dans Visual Studio, elle est stockée au format OA (OLE Automation).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 l'année 1900.Il existe également d'autres 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

  1. 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"), "NamedRange1");
    
  2. 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

  1. 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");
    
  2. 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 : faire référence aux plages de la feuille de calcul dans le code par programmation

Comment : ajouter des contrôles NamedRange aux feuilles de calcul

Concepts

Utilisation des plages

NamedRange, contrôle

Paramètres optionnels dans les solutions Office

Autres ressources

Vue d'ensemble du modèle objet Excel