Masquez et démasquez les lignes et les colonnes d’une feuille de calcul avec la macro ONLYOFFICE

9 août 2023By Dasha

La gestion de grands volumes de données peut prendre beaucoup de temps. C’est là que les macros ONLYOFFICE brillent, en automatisant les tâches et en libérant le potentiel de votre feuille de calcul. Dans ce billet de blog, nous vous montrerons comment créer une macro conviviale qui masque ou désactive des lignes et des colonnes spécifiques. De plus, bien que nous ayons une macro similaire dans la section des exemples de macros de notre documentation, avec celle-ci, nous irons encore plus loin et la rendrons encore plus pratique pour l’utilisateur.

Hide and unhide spreadsheet rows and columns with ONLYOFFICE macro

Construction de la macro

Tout d’abord, nous récupérons la feuille active de la feuille de calcul ONLYOFFICE et nous l’assignons à la feuille variable :

const sheet = Api.GetActiveSheet()

Nous définissons ensuite une plage qui comprend les cellules de la colonne A (cellule A1) à la colonne M (cellule M1) de la feuille active. Nous utiliserons cette plage pour manipuler les colonnes :

 const range = sheet.GetRange("A1:M1")

Ensuite, le tableau rowsToHide est créé et contient les numéros de ligne qui doivent être masqués ou non masqués. Ce tableau peut être personnalisé en ajoutant ou en supprimant des numéros de ligne :

const rowsToHide = [5, 8, 9, 12, 14, 16, 21, 22, 31, 32, 33]

Nous créons également le tableau columnsToHide. Il contient les numéros des colonnes qui doivent être masquées ou non :

const columnsToHide = [2,4,5,7,8,10,11,13,14,16]

Ensuite, nous récupérons le statut caché de la première ligne spécifiée dans le tableau rowsToHide. Si la première ligne est cachée, la propriété SetHidden() des autres lignes et colonnes est définie sur false. Cela nous permet d’annuler le masquage des lignes et des colonnes sélectionnées. Si la première ligne du tableau rowsToHide n’est pas masquée, la propriété SetHidden() est fixée à true, ce qui facilite le masquage de la plage ciblée :

const hidden = sheet.GetRows(rowsToHide[0]).GetHidden()

Nous exécutons ensuite la fonction hideUnhideDetails. Elle est chargée de masquer ou de démasquer les lignes et les colonnes en fonction de leur statut de masquage. Examinons-la de plus près :

function hideUnhideDetails(hidden) {
        rowsToHide.forEach(row => {
            sheet.GetRows(row).SetHidden(!hidden)
        })

Cette boucle parcourt chaque numéro de ligne spécifié dans le tableau rowsToHide et utilise la méthode SetHidden() pour masquer ou démasquer la ligne concernée en fonction de l’opposé de l’état masqué. Par exemple, si hidden (masqué) est true, la ligne ne sera pas cachée (!hidden est false), et si hidden est false, la ligne sera cachée (!hidden est true).

  columnsToHide.forEach(column => {
            range.GetCols(column).SetHidden(!hidden)
        })
    }

Cette boucle parcourt chaque numéro de colonne spécifié dans le tableau columnsToHide et utilise ensuite SetHidden() pour masquer ou décacher la colonne.

Le code macro complet est le suivant :

(function()
{
    const sheet = Api.GetActiveSheet()
    const range = sheet.GetRange("A1:M1")
    const rowsToHide = [5, 8, 9, 12, 14, 16, 21, 22, 31, 32, 33]
    const columnsToHide = [2,4,5,7,8,10,11,13,14,16]
    const hidden = sheet.GetRows(rowsToHide[0]).GetHidden()
    hideUnhideDetails(hidden)
    // Unhide if hidden, Hide if unhidden
    function hideUnhideDetails(hidden) {
        rowsToHide.forEach(row => {
            sheet.GetRows(row).SetHidden(!hidden)
        })
        columnsToHide.forEach(column => {
            range.GetCols(column).SetHidden(!hidden)
        })
    }
})();

Exécutons maintenant notre macro et voyons comment elle fonctionne !

Nous espérons que cette macro vous permettra d’économiser du temps et des efforts lors de la gestion de grands ensembles de données, vous permettant ainsi de vous concentrer sur les informations les plus pertinentes pour votre travail. L’utilisation de macros vous permet d’exploiter pleinement le potentiel d’ONLYOFFICE et d’augmenter votre productivité de manière significative.

Nous vous encourageons également à continuer à explorer les possibilités des macros dans ONLYOFFICE. Avec une meilleure compréhension des macros ONLYOFFICE, vous pouvez automatiser des tâches, améliorer votre productivité et personnaliser vos documents. Partagez vos idées et vos questions avec nous. Nous nous réjouissons de collaborer avec vous. Nous vous souhaitons bonne chance dans vos explorations !