Accueil
» BUREAU MS
»
Comment utiliser les macros ONLYOFFICE pour automatiser le nettoyage des feuilles de calcul
Comment utiliser les macros ONLYOFFICE pour automatiser le nettoyage des feuilles de calcul
Le nettoyage des feuilles de calcul est une tâche répétitive : les noms exportés contiennent des espaces superflus, le texte collé renferme des espaces insécables et les formules ou identifiants peuvent être altérés par des remplacements trop larges. Une macro ONLYOFFICE permet d'uniformiser le texte dans une plage définie tout en préservant les valeurs numériques et les cellules contenant des formules. L'exemple ci-dessous gère uniquement les espaces ; la suppression des doublons, la conversion des dates et la suppression des lignes vides nécessitent des règles distinctes.
Documentation vérifiée le 6 octobre 2026. Les macros ONLYOFFICE utilisent JavaScript avec l'API JavaScript d'Office, et non Excel VBA. La documentation actuelle de l'éditeur ouvre l'espace de travail des macros via Affichage → Macros . L'apparence exacte de la barre d'outils peut varier entre les versions de bureau et hébergées.
Cette macro peut gérer les tâches de nettoyage.
L'exemple supprime les espaces et tabulations de début et de fin, remplace les espaces insécables par des espaces normaux et réduit les espaces et tabulations répétés dans le texte. Il ignore les formules et les valeurs qui ne sont pas des chaînes de caractères. Cette limitation réduit le risque de modifier des dates, des montants ou des cellules calculées lors de la préparation d'une importation récurrente.
Problème de données
Que fait l'échantillon ?
Examiner avant d'automatiser
Espaces et tabulations en début ou en fin
Supprime les cellules de texte
Généralement sans danger pour les noms et les étiquettes, mais vérifiez les champs où l'espacement est significatif.
Espaces incassables
Les remplace par des espaces réguliers
Utile pour le texte Web copié ; vérifiez rapidement le champ source
Espaces ou tabulations répétés
Réduit chaque course à un seul espace
Ne pas utiliser sur du texte à largeur fixe ou avec une indentation intentionnelle.
Formules, nombres et booléens
Les laisse inchangés
Vérifiez que les cellules de formule continuent de calculer après l'exécution.
Lignes en double, dates, lignes vides
Cela ne les change pas
Définissez d'abord les règles métier ; il ne s'agit pas d'un simple nettoyage cosmétique.
1. Préparez une copie et définissez la plage
Enregistrez une copie de travail de la feuille de calcul avant d'exécuter une macro modifiant des cellules. Identifiez la feuille de calcul et les lignes de données à nettoyer. Dans le code ci-dessous, A2:D500un exemple de plage est fourni : la ligne 1 contient les en-têtes et les données sont attendues dans les colonnes A à D. Adaptez cette adresse à votre feuille. Utilisez une plage délimitée qui couvre les enregistrements concernés et excluez les notes, les formules et les colonnes non pertinentes.
Une petite feuille de calcul fournit un échantillon délimité ; veillez à ce que la ligne d’en-tête reste en dehors de la zone de nettoyage.
Pour un premier test, copiez quelques enregistrements représentatifs dans une feuille temporaire ou dupliquez le fichier et réduisez la plage, par exemple A2:D10. Incluez des exemples avec des espaces ordinaires, du texte collé, des cellules vides et des formules afin de vérifier comment la macro traite chaque cas.
2. Ouvrez l'éditeur de macros ONLYOFFICE
Ouvrez la feuille de calcul dans ONLYOFFICE Spreadsheet Editor et choisissez Affichage → Macros . Créez une nouvelle macro dans la fenêtre des macros ou sélectionnez un nouveau module, puis donnez-lui un nom clair, par exemple « macros ». Le guide de démarrageCleanTextWhitespace officiel des macros ONLYOFFICE décrit ce point d’entrée et la commande d’exécution.
L'onglet Affichage contient la commande Macros permettant d'ouvrir l'espace de travail des macros.
Si les macros sont désactivées dans les paramètres de votre éditeur, consultez Paramètres → Paramètres avancés → Macros . ONLYOFFICE propose des options pour désactiver les macros, afficher une notification ou les activer. Pour un classeur que vous n'avez pas créé, n'activez pas toutes les macros globalement pour exécuter un seul script ; examinez le code et respectez la politique de votre organisation.
3. Collez cette macro délimitée et prenant en compte les formules.
(function () {
var oSheet = Api.GetActiveSheet();
var oRange = oSheet.GetRange("A2:D500");
var nRows = oRange.GetRowsCount();
var nCols = oRange.GetColumnsCount();
for (var r = 1; r <= nRows; r++) {
for (var c = 1; c <= nCols; c++) {
var oCell = oRange.GetCells(r, c);
var sFormula = oCell.GetFormula();
// Do not replace formulas with their displayed results.
if (sFormula) {
continue;
}
var v = oCell.GetValue();
// Restrict this cleanup to text constants.
if (typeof v !== "string") {
continue;
}
var sClean = v
.replace(/\u00A0/g, " ")
.replace(/[ \t]+/g, " ")
.replace(/^[ \t]+|[ \t]+$/g, "");
// SetValue treats strings beginning with "=" as formulas.
if (sClean.charAt(0) === "=") {
continue;
}
if (sClean !== v) {
oCell.SetValue(sClean);
}
}
}
})();
Le volet de code affiche les méthodes de lecture de plage et de cellule utilisées par la macro de nettoyage.
Les compteurs de lignes et de colonnes transmis GetCellssont relatifs à la plage sélectionnée ; les exemples d'API utilisent des positions numérotées pour accéder à une cellule. La macro lit d'abord la formule de chaque cellule et l'ignore si une formule est présente. Elle lit ensuite la valeur et modifie uniquement les chaînes de caractères qui changent réellement. Une chaîne qui deviendrait une formule avec le signe égal après suppression des espaces est également ignorée, car le système SetValuepeut interpréter un signe égal initial comme une formule.
L'expression d'espacement blanc ne modifie pas les sauts de ligne. Elle ne change ni la casse, ni la ponctuation, ni les valeurs numériques, ni la numérotation des dates. Si votre source contient des notes multilignes, des champs à largeur fixe ou des identifiants avec des espaces spéciaux, testez ces colonnes séparément et ajustez la stratégie plutôt que d'appliquer une normalisation générale.
4. Exécutez le programme une fois, puis vérifiez le résultat.
Exécutez la macro depuis l'éditeur de macros. Comme elle met à jour les cellules de la plage sélectionnée, vérifiez le texte modifié dans la copie de travail avant d'écraser le fichier source. Comparez quelques lignes avec l'original, notamment la première et la dernière ligne de la plage. Assurez-vous que les en-têtes sont restés inchangés, que les formules fonctionnent toujours et que les cellules numériques (dates, devises, identifiants, etc.) n'ont pas été modifiées.
Utilisez la feuille de calcul pour vérifier ponctuellement des lignes représentatives et comparez-les avec la copie non modifiée.
Pour une feuille de calcul volumineuse, filtrez ou recherchez les espaces suspects avant et après l'exécution, puis comparez le nombre de lignes. La macro ne supprime pas les lignes, ne déduplique pas les enregistrements, ne convertit pas les dates et ne remplit pas les champs vides ; ces vérifications doivent donc porter sur les valeurs textuelles. Si vous avez besoin d'un historique d'audit visible, ajoutez une colonne de vérification distincte ou copiez les résultats nettoyés dans une feuille de transit plutôt que d'écrire les messages d'état dans une cellule quelconque.
Règles de nettoyage courantes qui nécessitent une décision séparée
Enregistrements en double : avant de supprimer des lignes, déterminez les colonnes définissant un doublon et vérifiez la validité des transactions répétées. Deux noms identiques ne représentent pas nécessairement la même personne ou la même commande.
Cellules et lignes vides : une cellule vide, un zéro et une valeur textuelle comme « N/A » ont des significations différentes. Ne les remplacez ni ne les supprimez sans règle de données.
Dates et nombres stockés sous forme de texte : choisissez d’abord un format et une langue. L’exemple évite de convertir ces valeurs car une chaîne de caractères comme « dates » 03/04/2026est ambiguë selon les régions.
Zéros non significatifs : Importez les identifiants sous forme 00127de texte. Si une feuille de calcul les a déjà stockés sous forme de nombres, la suppression des zéros non significatifs ne permettra pas de récupérer les zéros manquants.
Normalisation de la casse : Mettre les adresses e-mail en minuscules ou les codes d’état en majuscules peut aider pour certains champs, mais l’appliquer aux noms ou aux descriptions de produits peut détruire la capitalisation voulue.
Utilisez les macros ONLYOFFICE lorsqu'une règle reproductible peut être exprimée avec précision et testée sur une copie. Le système de macros utilise JavaScript et non VBA, est associé à un document et non accessible globalement, et son accès direct au système de fichiers et au réseau est restreint, comme expliqué dans la FAQ des macros ONLYOFFICE . Ce cadre isolé limite les actions qu'une macro peut effectuer en dehors de l'éditeur, mais une macro peut toujours modifier le contenu du classeur. Il est donc essentiel de vérifier et de tester le code avant de l'exécuter.
Pour les importations récurrentes, conservez le script dans un modèle contrôlé ou une copie du document et utilisez une courte liste de vérification : confirmez la feuille active, mettez à jour l’adresse de la plage, excluez les en-têtes et les formules, exécutez sur une copie, vérifiez les chaînes modifiées et comparez le classeur final avec l’original avant de l’enregistrer ou de le partager.