Insérer des tirets autour du texte des cellules à l’aide d’une macro ONLYOFFICE
La mise en forme manuelle des valeurs des cellules, une par une, peut être fastidieuse, en particulier lorsque vous devez appliquer le même motif à des dizaines ou des centaines de cellules. Dans cet article, nous vous montrerons une macro simple pour le tableur ONLYOFFICE qui ajoute automatiquement des tirets autour de chaque caractère dans les cellules sélectionnées.

Pourquoi utiliser cette macro ?
Entourer les caractères d’un séparateur peut être utile pour créer des étiquettes décoratives, distinguer visuellement des valeurs temporaires ou préparer des données à importer dans des systèmes qui attendent des chaînes entourées de délimiteurs.
Effectuer cette opération manuellement sur une grande plage de cellules est long et sujet aux erreurs. La macro traite les cellules instantanément et ignore les cellules vides ainsi que celles qui ont déjà été traitées. Vous pouvez donc l’exécuter plusieurs fois sans ajouter de tirets supplémentaires.
Création de la macro
Examinons plus en détail chaque partie du script et son rôle.
Récupérer la sélection actuelle
La macro commence par récupérer la plage de cellules actuellement sélectionnée :
let selection = Api.GetSelection();
selection.ForEach(function (cell) {
// ... le traitement a lieu ici pour chaque cellule
});
Api.GetSelection() renvoie la plage de cellules actuellement sélectionnées dans la feuille de calcul, tandis que ForEach() parcourt chaque cellule de cette plage et exécute la fonction de rappel correspondante.
Ignorer les cellules vides
Avant de traiter une cellule la macro vérifie qu’elle contient une valeur :
let cellValue = cell.GetValue();
if (cellValue === null || cellValue === undefined || cellValue === "") {
return;
}
GetValue() lit le contenu actuel de la cellule. Si celle-ci est vide (null, undefined ou une chaîne vide), la fonction s’arrête pour cette cellule et passe à la suivante.
Ignorer les cellules déjà traitées
Pour pouvoir être exécutée plusieurs fois sans modifier davantage une cellule déjà traitée, la macro vérifie également son contenu :
cellValue = String(cellValue);
if (/^---(?:.---)+$/.test(cellValue)) {
return;
}
La valeur est d’abord convertie en chaîne à l’aide de la méthode String(), afin de pouvoir être vérifiée et parcourue caractère par caractère. L’expression régulière /^---(?:.---)+$/ correspond aux chaînes qui suivent déjà ce motif. Si elle correspond déjà à un motif attendu, la macro ignore la cellule.
Ajouter des tirets autour de chaque caractère
Il s’agit du coeur de la macro : la nouvelle chaîne est construite caractère par caractère.
let sTemp = "---";
for (let c = 0; c < cellValue.length; c++) {
sTemp += cellValue.charAt(c) + "---";
}
Chaque itération de la boucle ajoute le caractère suivant de la valeur originale, suivi de – – –, reconstruisant progressivement la chaîne avec des tirets insérés entre chaque caractère.
Écrire le résultat dans la cellule
Enfin, la chaîne générée est enregistrée dans la cellule :
cell.SetValue(sTemp);
Code complet de la macro
(function () {
// Obtenez la ou les cellules actuellement sélectionnées dans la feuille de calcul
let selection = Api.GetSelection();
// Boucle à travers chaque cellule sélectionnée
selection.ForEach(function (cell) {
// Obtenez la valeur actuelle de la cellule
let cellValue = cell.GetValue();
// Ignorer les cellules vides, nulles ou undefined — rien à traiter
if (cellValue === null || cellValue === undefined || cellValue === "") {
return;
}
// Assurez-vous que la valeur est traitée comme une chaîne (au cas où ce serait un nombre, etc.)
cellValue = String(cellValue);
// Ignorer les cellules qui correspondent déjà au motif
if (/^---(?:.---)+$/.test(cellValue)) {
return;
}
// Commencez à construire la nouvelle valeur avec un "---" au début
let sTemp = "---";
// Encadrez chaque caractère de la valeur originale avec des séparateurs "---"
for (let c = 0; c < cellValue.length; c++) {
sTemp += cellValue.charAt(c) + "---";
}
// Écrire la valeur transformée dans la cellule
cell.SetValue(sTemp);
});
})();
Maintenant, exécutons la macro et voyons comment elle fonctionne !

Comment utiliser la macro
- Ouvrez une feuille de calcul dans ONLYOFFICE.
- Sélectionnez la plage de cellules à traiter.
- Allez dans Affichage → Macros, créez une nouvelle macro et collez le code ci-dessus.
- Cliquez sur Exécuter.
Chaque cellule non vide de la sélection sera instantanément entourée de tirets. Les cellules vides et celles qui ont déjà été traitées resteront inchangées.
Cette macro montre comment quelques lignes de code peuvent automatiser une tâche de mise en forme répétitive qui nécessiterait autrement de modifier les cellules une par une. Vous pouvez également l’adapter facilement pour utiliser d’autres séparateurs ou appliquer d’autres motifs.
Vous avez une idée de macro que vous aimeriez voir présentée, ou une suggestion pour améliorer celle-ci ? Rendez-vous dans la catégorie Macros de notre communauté ONLYOFFICE et partagez votre idée. C’est le meilleur endroit pour proposer de nouveaux exemples de macros ou échanger avec l’équipe ONLYOFFICE et d’autres développeurs.
Créez votre compte ONLYOFFICE gratuit
Affichez, modifiez et coéditez des documents texte, feuilles de calcul, diapositives, formulaires et fichiers PDF en ligne.


