Comment empêcher les utilisateurs d imprimer un fichier Excel avec C++

Scénarios d’utilisation possibles

Dans notre travail quotidien, il peut y avoir des informations importantes dans le fichier Excel; afin de protéger ces données internes de la diffusion, la société ne nous permettra pas de les imprimer. Ce document vous explique comment empêcher les autres d’imprimer des fichiers Excel.

Comment empêcher les utilisateurs d’imprimer un fichier dans MS-Excel

Vous pouvez appliquer le code VBA suivant pour protéger votre fichier spécifique contre l’impression.

  1. Ouvrez votre classeur que vous ne permettez pas aux autres d’imprimer.
  2. Sélectionnez l’onglet “Développeur” dans le ruban Excel et cliquez sur le bouton “Afficher le code” dans la section “Contrôles”. Alternativement, vous pouvez maintenir les touches ALT + F11 pour ouvrir la fenêtre Visual Basic for Applications.


  3. Ensuite, dans l’Explorateur de projets à gauche, faites double-cliquez sur ThisWorkbook pour ouvrir le module et y ajouter quelques codes VBA.


  4. Ensuite, enregistrez et fermez ce code, revenez au classeur, et lorsque vous imprimez le fichier exemple, il ne sera pas autorisé à être imprimé, et une boîte d’avertissement apparaîtra :


Comment empêcher les utilisateurs d’imprimer un fichier Excel en utilisant Aspose.Cells for C++

Le code d’exemple suivant illustre comment empêcher les utilisateurs d’imprimer un fichier Excel :

  1. Charger le fichier d’exemple.
  2. Obtenez l’objet VbaModuleCollection à partir de la propriété VbaProject du classeur.
  3. Obtenez l’objet VbaModule via le nom “ThisWorkbook”.
  4. Définissez la propriété codes de VbaModule.
  5. Enregistrez le fichier d’exemple au format xlsm.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Create workbook from existing Excel file
    Workbook workbook(u"Sample.xlsx");

    // Access VBA project modules
    VbaModuleCollection modules = workbook.GetVbaProject().GetModules();

    // Set VBA code for 'ThisWorkbook' module
    modules.Get(u"ThisWorkbook").SetCodes(u"Private Sub Workbook_BeforePrint(Cancel As Boolean)\r\n  Cancel = True\r\n  MsgBox \"Refusing to print in paperless office\"\r\nEnd Sub\r\n");

    // Save the workbook as macro-enabled Excel file
    workbook.Save(u"out.xlsm");

    std::cout << "VBA code added and workbook saved successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}