Excel est le logiciel incontournable dans de nombreuses entreprises, pour facilement gérer des tableaux de données, de la comptabilité ou même des plannings.
Néanmoins certaines tâches sont parfois répétitives et il peut être intéressant de les automatiser avec un add-in Excel (également appelé plugin ou complément Excel). D’ailleurs Excel possède un store pour installer ces compléments.

Add-ins vs macros
Avant les add-ins, il y avait les fameuses macros Excel, qui permettaient déjà d’automatiser nos tâches répétitives. Néanmoins depuis une dizaine d’année, Microsoft déconseille fortement leur usage pour des raisons de sécurité. Car si vous recevez un fichier Excel malveillant avec une macro, cela peut compromettre la sécurité de votre PC et de vos données.
C’est pourquoi désormais pour automatiser nos tâches Excel, il est préférable de penser aux add-ins plutôt qu’aux macros. En tant que développeur, comment pouvons-nous créer notre propre add-in ?
Initialiser le projet de son premier add-in
En pré-requis, il faut Visual Studio (la base…), Office (sinon comment tester notre add-in Excel ?) et les outils de développement pour Office, appelés VSTO. Si vous rencontrez un souci, vous pouvez vous référer à la configuration recommandée par Microsoft. Puis nous allons initialiser notre projet.

On se retrouve avec un projet baptisé ExcelAddIn1, avec juste la classe ThisAddIn.cs.

Maintenant comment interagir avec notre plugin ? On peut s’appuyer sur l’event
ThisAddIn_Startup
si on veut effectuer des traitements dès le lancement du plugin, mais ce n’est pas très user-friendly. Pour notre part, on va plutôt privilégier d’ajouter un Ribbon (la fameuse barre Office) et d’y insérer un bouton pour déclencher notre action souhaitée.
Trucs et astuces
Comment sélectionner une cellule ?
Nos feuilles Excel sont des tableaux. Du coup pour placer un élément, il faudra nommer la cellule à la manière de newTab.Cells[indexRow, indexColumn].Value. A noter les coordonnées de la première cellule sont 1,1 (1ère ligne, 1ère colonne) et non 0,0.
Comment mettre en forme la colonne A ?
1 2 3 4 5 |
Range columnA = reviewTab.Range["A:A"]; columnA.EntireColumn.ColumnWidth = 35; columnA.Interior.Color = Color.White; columnA.Font.Color = Color.Black; columnA.Font.Bold = true; |
Comment mettre en forme un ensemble de cellules ?
1 2 3 4 5 6 7 8 |
Range range = reviewTab.Range[$"B2:B10"]; range.Interior.Color = Color.FromArgb(49, 134, 155); range.Font.Color = Color.White; range.Font.Bold = true; range.HorizontalAlignment = XlHAlign.xlHAlignCenter; range.Borders.LineStyle = XlLineStyle.xlContinuous; range.Borders.Weight = XlBorderWeight.xlMedium; range.Borders[XlBordersIndex.xlInsideHorizontal].Weight = XlBorderWeight.xlThin; |
Comment récupérer la liste des onglets (worksheets) de notre Excel ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public List<String> GetAllWorksheetsName(Workbook document) { List<String> listWorksheetsName = null; if (document?.Worksheets?.Count > 0) { listWorksheetsName = new List<string>(); foreach (Worksheet worksheet in document.Worksheets) { if (!String.IsNullOrWhiteSpace(worksheet.Name)) listWorksheetsName.Add(worksheet.Name); } } return listWorksheetsName; } |
Comment obtenir le nom d’une colonne à partir de son index ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public string GetExcelColumnName(int columnIndex) { int dividend = columnIndex; string columnName = String.Empty; int modulo; while (dividend > 0) { modulo = (dividend - 1) % 26; columnName = Convert.ToChar(65 + modulo).ToString() + columnName; dividend = (int)((dividend - modulo) / 26); } return columnName; } |
L’add-in a disparu de votre Excel ?
- Allez sur l’onglet « Compléments » de votre Excel
- Clic droit, puis « Personnaliser le ruban »
- Cliquez sur l’onglet « Compléments »
- Tout en bas, sur « Gérer », sélectionnez « Compléments COM » et cliquez sur « Atteindre »
- Cochez votre addIn, et ainsi il apparaitra sur votre Excel dans l’onglet « Compléments »
Projet démo
Nous avons partagé un petit projet démo pour illustrer différentes fonctionnalités de VSTO pour Excel sur notre GitHub. A la compilation, Excel va s’ouvrir, créez un nouveau fichier, puis allez dans l’onglet « compléments » d’Excel pour tester l’add-in.
Avec cet exemple, nous avons vu qu’il est relativement facile de concevoir un add-in Excel, dans le but d’automatiser certaines tâches répétitives, ou pour enrichir des données par exemple.