15 macros JavaScript utiles à essayer en 2024

27 décembre 2023By Dasha

Alors que Microsoft Office dispose de macros basées sur VBA, ONLYOFFICE va plus loin avec des macros basées sur JavaScript, offrant ainsi plus de flexibilité. Dans ce billet de blog, nous allons présenter quelques-unes des nombreuses macros ONLYOFFICE qui constituent une alternative intéressante aux macros traditionnelles VBA.

15 useful JavaScript macros to try in 2024

Qu’est-ce qu’une macro JavaScript ?

Les macros sont des outils puissants qui automatisent les tâches. ONLYOFFICE utilise JavaScript pour créer des macros couvrant l’édition de documents, de feuilles de calcul, de présentations et d’OFORM. Ces macros JavaScript permettent aux utilisateurs d’automatiser des tâches, d’améliorer la fonctionnalité des documents et de personnaliser les applications ONLYOFFICE en fonction de leurs besoins.

Pourquoi avez-vous besoin d’une alternative aux macros VBA ?

Grâce à la possibilité d’écrire des macros JavaScript personnalisées, vous pouvez réaliser l’automatisation, l’interactivité et l’intégration transparente avec des systèmes externes :

  • Automatisation : Les macros JavaScript permettent aux utilisateurs d’automatiser des tâches telles que le formatage, la manipulation de données et les calculs dans les documents.
  • Interactivité : Les macros peuvent rendre les documents plus interactifs en réagissant aux actions ou aux événements de l’utilisateur.
  • Personnalisation : Les utilisateurs peuvent personnaliser le comportement des applications ONLYOFFICE en fonction de leurs besoins spécifiques.
  • Intégration : Les macros JavaScript permettent l’intégration avec des systèmes et services externes, permettant l’échange de données et la communication entre ONLYOFFICE et d’autres plateformes.

Étant donné que les macros ONLYOFFICE utilisent JavaScript, et au-delà de sa flexibilité, c’est un langage extrêmement populaire avec une communauté dynamique. Il y a une abondance de tutoriels disponibles, fournissant des conseils complets sur la façon d’aborder diverses tâches avec JavaScript. De plus, notre documentation détaillée fournit des explications claires sur les méthodes que vous pouvez utiliser dans vos macros JavaScript.

Comparaison des macros Excel VBA avec les alternatives JavaScript d’ONLYOFFICE

Surligner les doublons de la sélection

La macro Excel VBA est la suivante :

Sub HighlightDuplicateValues()
Dim myRange As Range
Dim myCell As Range
Set myRange = Selection
For Each myCell In myRange
If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then
myCell.Interior.ColorIndex = 36
End If
Next myCell
End Sub

Contrairement à l’équivalent VBA, notre alternative offre une fonctionnalité plus avancée en mettant en évidence les valeurs dupliquées à l’aide de couleurs uniques :

(function () 
{
    // Background color of cells with non-repeating values
    var whiteFill = Api.CreateColorFromRGB(255, 255, 255);
    // The current index of the color range
    var uniqueColorIndex = 0;
    // Color range to highlight duplicate values
    var uniqueColors = [Api.CreateColorFromRGB(255, 255, 0),
        Api.CreateColorFromRGB(204, 204, 255),
        Api.CreateColorFromRGB(0, 255, 0),
        Api.CreateColorFromRGB(0, 128, 128),
        Api.CreateColorFromRGB(192, 192, 192),
        Api.CreateColorFromRGB(255, 204, 0)];
    // Function to get color for duplicates
    function getColor() {
        // If you have chosen all the unique colors, then let's go from the beginning
        if (uniqueColorIndex === uniqueColors.length) {
            uniqueColorIndex = 0;
        }
        return uniqueColors[uniqueColorIndex++];
    }
    // Getting an active sheet
    var activeSheet = Api.ActiveSheet;
    // Getting selection on the active sheet
    var selection = activeSheet.Selection;
    // Map of values in cells with the duplicates number
    var mapValues = {};
    // All cells range
    var arrRanges = [];
    // Going through the selection
    selection.ForEach(function (range) {
        // Getting value from cell
        var value = range.GetValue();
        if (!mapValues.hasOwnProperty(value)) {
            mapValues[value] = 0;
        }
        mapValues[value] += 1;
        arrRanges.push(range);
    });
    var value;
    var mapColors = {};
    // We go through all the cells of the selection and setting the highlighting if this value is repeated more than 1 time
    for (var i = 0; i < arrRanges.length; ++i) {
        value = arrRanges[i].GetValue();
        if (mapValues[value] > 1) {
            if (!mapColors.hasOwnProperty(value)) {
                mapColors[value] = getColor();
            }
            arrRanges[i].SetFillColor(mapColors[value]);
        } else {
            arrRanges[i].SetFillColor(whiteFill);
        }
    }
})();

(no title)

Démasquer toutes les lignes et toutes les colonnes

Ce script VBA permet de masquer toutes les lignes et colonnes de la feuille de calcul :

Sub UnhideRowsColumns()
Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
End Sub

La même chose peut être faite avec la macro JavaScript :

(function()
{
    var activeSheet = Api.ActiveSheet;
    var indexRowMax = 1048576;
    var n = 1;
    for (let i = 0; i < indexRowMax; i++) {
        activeSheet.GetRows(n).SetHidden(false);
        n++;
    }
    var newRange = activeSheet.GetRange("A1");
    newRange.SetValue("All the rows and columns are unhidden now");
})();

(no title)

Vous pouvez également masquer toutes les lignes et colonnes en fixant le paramètre SetHidden à true dans cette macro :

(function()
{
    var activeSheet = Api.ActiveSheet;
    var indexRowMax = 1048576;
    var n = 1;
    for (let i = 0; i < indexRowMax; i++) {
        activeSheet.GetRows(n).SetHidden(true);
        n++;
    }
    var newRange = activeSheet.GetRange("A1");
    newRange.SetValue("All the rows and columns are hidden now");
})();

Si vous avez besoin de fonctionnalités plus avancées, nous avons détaillé une macro dans un autre billet de blog qui vous permet de masquer/démasquer des lignes et des colonnes spécifiques.

Mettre en évidence les valeurs supérieures à un paramètre

Voici une version VBA qui met en évidence la valeur supérieure à la valeur :

Sub HighlightGreaterThanValues()
Dim i As Integer
i = InputBox("Enter Greater Than Value", "Enter Value")
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, _
Operator:=xlGreater, Formula1:=i
Selection.FormatConditions(Selection.FormatConditions.Count).S
tFirstPriority
With Selection.FormatConditions(1)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(31, 218, 154)
End With
End Sub

La même tâche peut être accomplie avec une macro JavaScript ONLYOFFICE, même en utilisant moins de lignes de code :

(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value > 5) {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });    
})();

(no title)

Bien qu’elle comporte moins de lignes de code, notre alternative offre une plus grande polyvalence. Par exemple, en changeant la condition de l’instruction if, nous pouvons :

  • Mettre en évidence les valeurs inférieures aux valeurs :
(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value < 5) {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });
  • Mettre en évidence les nombres négatifs :
(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value < 0) {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });
})();
  • Mettre en évidence les cellules contenant un texte spécifique :
(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value == 'text') {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });
 })();

Autres macros JavaScript utiles à essayer

  1. Macro JavaScript pour ajouter des index à une sélection dans les feuilles de calcul ONLYOFFICE
    Parfois, l’indexation par défaut ne suffit pas. C’est là qu’intervient notre macro JavaScript qui permet de gagner du temps. Elle indexera proprement toutes les lignes de votre sélection, ce qui simplifiera considérablement le travail dans votre feuille de calcul.
  2. Macro JavaScript pour copier des feuilles de calcul
    L’édition de feuilles de calcul peut s’avérer délicate, en particulier lorsqu’il s’agit de manipuler plusieurs feuilles de calcul contenant des données similaires. Pour faciliter ce processus, nous allons créer une macro JavaScript qui copie les données d’une feuille de calcul à l’autre et vous aide à manipuler facilement de grandes feuilles de calcul.
  3. Macro JavaScript pour insérer plusieurs résultats de recherche Baidu dans une feuille de calcul
    La macro Baidu est un outil polyvalent conçu pour améliorer l’efficacité de la gestion des requêtes de recherche simples ou multiples. Quel que soit votre niveau d’expérience, sa conception conviviale et son adaptabilité en font un complément utile à votre boîte à outils.
  4. Macro JavaScript pour importer des liens hypertextes dans une feuille de calcul
    Les liens hypertextes peuvent grandement améliorer l’esthétique et la fonctionnalité de vos feuilles de calcul, en facilitant l’accès à des ressources cruciales dans vos documents. Cette macro JavaScript importe des hyperliens en extrayant les données de liens d’une autre feuille de calcul.
  5. Macro JavaScript pour trouver des logos
    Compte tenu du grand nombre de logos existants, il peut être difficile de trouver les références d’un logo, ce qui peut prêter à confusion. Pourtant, avec les macros ONLYOFFICE, vous pouvez rendre ce processus automatique. Cette macro JavaScript peut récupérer simultanément plusieurs logotypes à partir d’une API externe et les insérer dans votre feuille de calcul.
  6. Macro JavaScript pour générer des messages d’accueil personnalisés en fonction du sexe
    S’adresser correctement aux gens est essentiel dans la communication, car cela témoigne du respect, de l’inclusivité et du professionnalisme. Cette macro JavaScript utilise l’API Genderize.io pour générer des salutations personnalisées correctes.
  7. Macro JavaScript pour suivre les commandes sur Shopify
    À notre époque, le commerce électronique est devenu un outil précieux pour faire tomber les barrières géographiques et faciliter le flux constant de revenus. Par conséquent, la gestion et le suivi des informations relatives aux commandes constituent un élément essentiel d’une stratégie commerciale réussie. Cette macro JavaScript récupère les données de commande de Shopify et les insère dans une feuille de calcul.
  8. Macro JavaScript pour importer des données CSV et TXT dans votre feuille de calcul
    Stocker des données tabulaires au format CSV est très pratique à bien des égards, ce qui rend ce type de fichier extrêmement populaire. ONLYOFFICE Docs permet d’importer des fichiers CSV et TXT locaux. Cette macro JavaScript vous aidera à importer des fichiers CSV et TXT distants.
  9. Macro JavaScript pour surveiller les données sur la qualité de l’air
    Les macros ONLYOFFICE nous facilitent la vie. Elles nous aident à automatiser nos tâches quotidiennes et à traiter d’importants volumes de données. Cette macro JavaScript vous permet d’afficher en direct les données relatives à la qualité de l’air.
  10. Macro JavaScript pour remplir les cellules avec les données de l’OpenAI
    La technologie de l’IA a fait des progrès significatifs et est devenue un outil précieux qui peut automatiser notre flux de travail. Cette macro JavaScript alimente une feuille de calcul avec des données obtenues auprès d’OpenAI.
  11. Macro JavaScript pour analyser les données d’une feuille de calcul
    Bien que ChatGPT 4 offre désormais des fonctionnalités améliorées, certains utilisateurs préfèrent encore ChatGPT 3.5 en raison de son coût inférieur en jetons. Cependant, ChatGPT 3.5 ne permet pas de télécharger des fichiers, ce qui empêche les utilisateurs d’analyser des feuilles de données. Cette macro JavaScript surmonte cette limitation et vous permet d’analyser des feuilles de calcul.
  12. Macro JavaScript pour supprimer les doublons dans la sélection
    Cette macro JavaScript supprime les doublons de la sélection de la feuille de calcul. Elle vous aide à vous débarrasser des entrées en double, en rendant vos données propres et précises grâce à une solution simple et efficace qui améliore l’expérience globale de votre feuille de calcul.

Les macros ONLYOFFICE sont des outils flexibles et puissants, capables non seulement d’imiter les fonctionnalités des macros VBA mais aussi de les surpasser.

Nous encourageons également tout le monde à exploiter notre API ONLYOFFICE et à créer vos propres macros fascinantes. Si vous avez des questions ou des idées, n’hésitez pas à nous contacter. Nous sommes ouverts à la discussion et à la collaboration.