Explications des lignes de programme svp

Résolu
lynda789456 Messages postés 245 Statut Membre -  
lynda789456 Messages postés 245 Statut Membre -
Bonjour tous le monde !
SVP expliquez moi via des petits commentaires le role de chaque ligne du code!
Pourquoi on créé des macro?quels sont leurs roles?et pourquoi des fois on insère des modules ?
Private Sub Workbook_beforePrint(Cancel As Boolean)
    Dim strPw As String, MDP
    
    strPw = "essai"
    MDP = InputBoxDK("Entrez le mot de passe...", "Password")
    If MDP <> strPw Then
        If MDP <> "" Then MsgBox ("Impression INTERDITE!!!!")
        Cancel = True
    End If
End Sub

Cordialement ;)

2 réponses

  1. Utilisateur anonyme
     
    Bonjour lynda789456,

    ============================================

    Rappel : VBA est le sigle de Visual Basic for Application ; celui du
    tableur EXCEL en est une version spécialement adaptée (pour
    prendre en compte toutes les spécificités du tableur) ; on appelle
    parfois cette version VBE : Visual Basic for Excel.

    ============================================

    Sans utiliser de macros, ou si tu préfères, sans utiliser de code VBA,
    tu peux déjà faire beaucoup de choses avec le tableur EXCEL.

    Mais si tu fais du VBA, ça te permet d'aller beaucoup plus loin,
    car tu peux écrire des macros qui peuvent faire des choses
    qu'il serait tout simplement impossible de faire sans !

    -------------------------------------------------------------------------------

    Pour programmer en VBA, il faut aller sur l'éditeur de Visual Basic :
    quand tu es sur EXCEL (feuille de calcul, graphique ou autre),
    < Alt >< F11 > va dessus.

    Si tu veux retourner à EXCEL avec l'intention de revenir sur
    l'éditeur VBA : < Alt >< F11 > de nouveau.

    Si tu veux retourner à EXCEL tout en fermant l'éditeur VBA :
    < Alt >< q > pour « quitter ».

    -------------------------------------------------------------------------------

    Quand tu es sur l'éditeur VBA, il faut obligatoirement insérer
    une feuille spéciale qu'on appelle « Module » : c'est une page
    blanche, comme dans Word, où tu écris ton code VBA.

    C'est donc à cet endroit que sont les macros que tu écris ;
    et quand, depuis EXCEL, l'utilisateur utilise la commande
    « Enregistrer une macro », c'est aussi à cet endroit que
    sont placées les macros.

    Le 1er module s'appelle Module1 ; les suivants seront
    Module2, Module3, etc... Mais tu peux leur donner
    un autre nom.

    -------------------------------------------------------------------------------

    Le code VBA que tu as donné en exemple a pour but d'empêcher
    l'impression si l'utilisateur n'as pas introduit le mot de passe
    correct. En anglais, password = mot de passe.

    Le programmeur choisit lui-même le nom des variables, tout en
    respectant certaines restrictions : certains caractères sont
    interdits. Donc ici, le programmeur a choisi le nom strPw car :
    a) str est l'abréviation de string : chaîne de caractères
    b) Pw est l'abréviation de Password

    Le mot de passe choisi est ici « essai », donc comme on le voit,
    il n'est pas secret et tout le monde peut le connaître. Mais c'est
    voulu par le programmeur car il s'agit d'un programme de
    démonstration. Dans un cas d'utilisation réelle, le code VBA
    serait protégé et on ne pourrait pas le voir, donc cette fois,
    le mot de passe serait bien secret.

    L'instruction InputBox permet à l'utilisateur de saisir une donnée.
    Mais ici, c'est une version spéciale InputBoxDK qui n'existe pas
    au départ dans le VBA. Le code que tu as donné en exemple est
    donc pour cela mal choisi, car il est incomplet et ne contient pas
    cette version spéciale de InputBox.

    Cependant, je peux quand même te dire que InputBoxDK permet
    à l'utilisateur de saisir une donnée, mais en remplaçant tous les
    caractères saisis par une astérisque (*), cela pour préserver la
    confidentialité du mot de passe saisi (donc une personne placée
    derrière celui qui tape ne pourra pas voir le mot de passe sur
    l'écran).

    Je ne détaille pas plus car ce n'est justement pas un bon exemple,
    et je te recommande d'apprendre le VBA avec des livres papiers
    d'initiation à ce langage, ou avec leur équivalent Internet.

    Cordialement.  😊
     
    0
    1. lynda789456 Messages postés 245 Statut Membre
       
      Merci beaucoup, beaucoup , beaucoup monsieur c gentil pour tous c explications :)
      Bonne soirée :)
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    petites explications:
    'evenement a la suite demande impression
    Private Sub Workbook_beforePrint(Cancel As Boolean)
        Dim strPw As String, MDP        'declaration des variables
        
        strPw = "essai"     'affectation a une valeur
        MDP = InputBoxDK("Entrez le mot de passe...", "Password")       'resultat de la fonction InputBoxDK (module:MMDP_InputBox_Etoiles) dans MDP
        If MDP <> strPw Then        'test si MPD entré different du mot de passe attendu contenu dans strPw
            If MDP <> "" Then MsgBox ("Impression INTERDITE!!!!")   'test si MDP non vide boite a message
            Cancel = True       'drapeau pour excel pour annuler l'impression
        End If
    End Sub
    


    infos sur les Macros excel (Procedure):
    https://fr.wikiversity.org/wiki/Macros-commandes_VBA/Les_Macros_Excel
    https://www.commentcamarche.net/contents/1374-macros-comment-les-creer
    0
    1. lynda789456 Messages postés 245 Statut Membre
       
      Merci beaucoup monsieur, vous m'avez éclairci les choses avec ces commentaires, je vous remercie infiniment ;)
      Bonne soirée :)
      0