Partager via


Procédure pas à pas : programmation d'événements d'un contrôle NamedRange

Cette procédure pas à pas montre comment ajouter un contrôle NamedRange à une feuille de calcul Microsoft Office Excel et programmer par rapport à ses événements à l'aide des outils de développement Office dans Visual Studio.

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

Au cours de cette procédure pas à pas, vous apprendrez à :

  • ajouter un contrôle NamedRange à une feuille de calcul ;

  • programmer des événements de contrôle NamedRange ;

  • tester votre projet.

Notes

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. Ces éléments dépendent de l'édition de Visual Studio dont vous disposez et des paramètres que vous utilisez. Pour plus d'informations, consultez Utilisation des paramètres.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :

-

Une édition de Visual Studio 2010 qui inclut les outils de développement Microsoft Office. Pour plus d'informations, consultez [Configuration d'un ordinateur pour développer des solutions Office](bb398242\(v=vs.100\).md).
  • Excel 2007 ou Excel 2010

Création du projet

Dans cette étape, vous allez créer un projet de classeur Excel à l'aide de Visual Studio.

Pour créer un projet

  • Créez un projet de classeur Excel et attribuez-lui le nom My Named Range Events. Assurez-vous d'avoir sélectionné Créer un nouveau document. Pour plus d'informations, consultez Comment : créer des projets Office dans Visual Studio.

    Visual Studio ouvre le nouveau classeur Excel dans le concepteur et ajoute le projet My Named Range Events à l'Explorateur de solutions.

Ajout de texte et de plages nommées à la feuille de calcul

Étant donné que les contrôles hôtes sont des objets Office étendus, vous pouvez les ajouter à votre document de la même manière que si vous ajoutiez l'objet natif. Par exemple, vous pouvez ajouter un contrôle NamedRange Excel à une feuille de calcul en ouvrant le menu Insertion, en pointant sur Nom et en choisissant Définir. Vous pouvez également ajouter un contrôle NamedRange en le faisant glisser de la Boîte à outils sur la feuille de calcul.

Dans cette étape, vous ajouterez deux contrôles de plage nommée à la feuille de calcul à l'aide de la Boîte à outils, puis vous ajouterez du texte à la feuille de calcul.

Pour ajouter une plage à votre feuille de calcul

  1. Vérifiez que le classeur My Named Range Events.xls est ouvert dans le concepteur Visual Studio, avec Sheet1 affiché.

  2. À partir de l'onglet Contrôles Excel de la boîte à outils, faites glisser un contrôle NamedRange vers la cellule A1 dans Sheet1.

    La boîte de dialogue Ajouter le contrôle NamedRange s'affiche.

  3. Vérifiez que $A$1 apparaît dans la zone de texte modifiable, et que la cellule A1 est sélectionnée. Si ce n'est pas le cas, cliquez sur la cellule A1 pour la sélectionner.

  4. Cliquez sur OK.

    La cellule A1 devient une plage nommée namedRange1. Il n'existe aucune indication visible sur la feuille de calcul, mais namedRange1 apparaît dans la zone Nom (située juste au-dessus de la feuille de calcul sur le côté gauche) lorsque la cellule A1 est sélectionnée.

  5. Ajoutez un autre contrôle NamedRange à la cellule B3.

  6. Vérifiez que $B$3 apparaît dans la zone de texte modifiable, et que la cellule B3 est sélectionnée. Si ce n'est pas le cas, cliquez sur la cellule B3 pour la sélectionner.

  7. Cliquez sur OK.

    La cellule B3 devient une plage nommée namedRange2.

Pour ajouter du texte à votre feuille de calcul

  1. Dans la cellule A1, tapez le texte suivant :

    Voici un exemple de contrôle NamedRange.

  2. Dans la cellule A3 (à gauche de namedRange2), tapez le texte suivant :

    Événements :

Dans les sections suivantes, vous écrirez du code qui insère du texte dans namedRange2 et modifie les propriétés du contrôle namedRange2 en réponse aux événements BeforeDoubleClick, Change et SelectionChange de namedRange1.

Ajout de code pour répondre à l'événement BeforeDoubleClick

Pour insérer du texte dans NamedRange2 à partir de l'événement BeforeDoubleClick

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Sheet1.vb ou Sheet1.cs, puis sélectionnez Afficher le code.

  2. Ajoutez du code pour que le gestionnaire d'événements namedRange1_BeforeDoubleClick ressemble à ceci :

    Private Sub NamedRange1_BeforeDoubleClick( _
        ByVal Target As Microsoft.Office.Interop.Excel.Range, ByRef Cancel As Boolean) _
        Handles NamedRange1.BeforeDoubleClick
    
        With Me.NamedRange2
            .Value2 = "The BeforeDoubleClick event occurred."
            .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
            .Font.Italic = True
        End With
    End Sub
    
    private void namedRange1_BeforeDoubleClick(
        Microsoft.Office.Interop.Excel.Range Target, ref bool Cancel)
    {
        this.namedRange2.Value2 = "The BeforeDoubleClick event occurred.";
        this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
        this.namedRange2.Font.Italic = true;
    }
    
  3. En C#, vous devez ajouter des gestionnaires d'événements pour la plage nommée comme indiqué dans l'événement Startup ci-dessous. Pour plus d'informations sur la création de gestionnaires d'événements, consultez Comment : créer des gestionnaires d'événements dans les projets Office.

    this.namedRange1.BeforeDoubleClick += new Microsoft.Office.Interop.Excel.
        DocEvents_BeforeDoubleClickEventHandler(namedRange1_BeforeDoubleClick);   
    
    this.namedRange1.Change += new Microsoft.Office.Interop.Excel.
        DocEvents_ChangeEventHandler(namedRange1_Change);
    
    this.namedRange1.SelectionChange +=new Microsoft.Office.Interop.Excel.
        DocEvents_SelectionChangeEventHandler(namedRange1_SelectionChange);
    

Ajout de code pour répondre à l'événement Change

Pour insérer du texte dans namedRange2 à partir de l'événement Change

  • Ajoutez du code pour que le gestionnaire d'événements NamedRange1_Change ressemble à ceci :

    Private Sub NamedRange1_Change(ByVal Target As Microsoft.Office.Interop.Excel.Range) _
        Handles NamedRange1.Change
    
        With Me.NamedRange2
            .Value2 = "The Change event occurred."
            .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue)
            .Font.Italic = False
        End With
    End Sub
    
    private void namedRange1_Change(Microsoft.Office.Interop.Excel.Range Target)
    {
        this.namedRange2.Value2 = "The Change event occurred.";
        this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue);
        this.namedRange2.Font.Italic = false;
    }
    

    Notes

    Dans la mesure où le fait de double-cliquer sur une cellule dans une plage Excel fait passer en mode édition, un événement Change se produit lorsque la sélection est déplacée en dehors de la plage, même si aucune modification n'a été apportée au texte.

Ajout de code pour répondre à l'événement SelectionChange

Pour insérer du texte dans namedRange2 à partir de l'événement SelectionChange

  • Ajoutez du code pour que le gestionnaire d'événements NamedRange1_SelectionChange ressemble à ceci :

    Private Sub NamedRange1_SelectionChange(ByVal Target As Microsoft.Office.Interop.Excel.Range) _
        Handles NamedRange1.SelectionChange
    
        With Me.NamedRange2
            .Value2 = "The SelectionChange event occurred."
            .AddComment("SelectionChange always occurs before BeforeDoubleClick.")
            .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black)
        End With
    End Sub
    
    private void namedRange1_SelectionChange(Microsoft.Office.Interop.Excel.Range Target)
    {
        this.namedRange2.Value2 = "The SelectionChange event occurred.";
        this.namedRange2.AddComment("SelectionChange always occurs before BeforeDoubleClick.");
        this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black);
    }
    

    Notes

    Dans la mesure où le fait de double-cliquer sur une cellule dans une plage Excel entraîne le déplacement de la sélection dans la plage, un événement SelectionChange se produit avant que l'événement BeforeDoubleClick ne se produise.

Test de l'application

Maintenant, vous pouvez tester votre classeur pour vérifier que le texte qui décrit les événements d'un contrôle NamedRange est inséré dans une autre plage nommée lorsque les événements sont déclenchés.

Pour tester votre document

  1. Appuyez sur F5 pour exécuter votre projet.

  2. Placez votre curseur dans namedRange1 et vérifiez que le texte concernant l'événement SelectionChange est inséré et qu'un commentaire est inséré dans la feuille de calcul.

  3. Double-cliquez dans namedRange1 et vérifiez que le texte concernant les événements BeforeDoubleClick est inséré avec du texte en italique rouge dans namedRange2.

  4. Cliquez en dehors de namedRange1 et notez que l'événement de modification se produit au moment de quitter le mode édition, bien qu'aucune modification n'ait été apportée au texte.

  5. Modifiez le texte dans namedRange1.

  6. Cliquez en dehors de namedRange1 et vérifiez que le texte concernant l'événement Change est inséré avec du texte bleu dans namedRange2.

Étapes suivantes

Cette procédure pas à pas présente les notions de base de la programmation des événements d'un contrôle NamedRange. Vous devrez peut-être ensuite exécuter la tâche suivante :

Voir aussi

Tâches

Comment : redimensionner les contrôles NamedRange

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

Comment : créer des gestionnaires d'événements dans les projets Office

Concepts

Vue d'ensemble des éléments hôtes et des contrôles hôtes

Automatisation d'Excel à l'aide d'objets étendus

NamedRange, contrôle

Limitations de programmation des éléments hôtes et des contrôles hôtes