{"text_format":"1","workbook":"xlsx","n_sheets":28,"sheets":["TDM","Éditeur VBA","Sélection","Sélection-Solution","Renseignements","Renseignements-Solution","Débogage","Variables","Variables-Solution","Variables (2)","Variables (2)-Solution","Sub-Function","Sub-Function-Solution","Sub-Function (2)","Sub-Function (2)-Solution","Sub-Function (3)","Sub-Function (3)-Solution","Sub-Function-Application","Boucles","Boucles-Solution","Boucles (2)","Boucles (2)-Solution","Boucles (3)","Boucles (3)-Solution","Tableaux de variables","Tableaux de variables-Solution","Gestion des erreurs","Gestion des erreurs-Solution"],"not_rendered":{"charts":0,"images":13,"macros":1,"external_links":0,"defined_names":3,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"TDM","index":0,"n_rows":33,"n_cols":3,"rows_kept":33,"cut":false,"hidden":false,"merged":[]}
[]
[]
[null,"L'éditeur VBA","Explications sur l'environnement VBA et les différents éléments à utiliser"]
[]
[null,"Sélection de cellule en VBA","Instructions de programmation des différentes sélections (cellule, plage, feuille, …)"]
[]
[null,"Afficher renseignements","Affichage de renseignements d'éléments divers : chemin du fichier, nom du fichier, numéro de la ligne active, …"]
[]
[null,"Débogage du code","Comment vérifier votre code VBA?"]
[]
[null,"Études des variables","Valeurs intermédiaires stockées en mémoire"]
[]
[null,"Études des variables (2)"]
[]
[null,"SUB versus FUNCTION","Différences entre les 2 types de procédures principales : Les 'SUB' et les 'FUNCTION'"]
[]
[null,"SUB et FUNCTION (2)"]
[]
[null,"SUB et FUNCTION (3)"]
[]
[null,"SUB et FUNCTION : Application","C'est à vous de bosser un peu :)"]
[]
[null,"Les boucles \"FOR .. NEXT\"","Comment répéter les mêmes instructions un certain nombre de fois "]
[]
[null,"Les boucles \"DO UNTIL .. LOOP\"","Comment répéter les mêmes instructions jusqu'à ce qu'une condition soit atteinte"]
[]
[null," Les boucles \"DO WHILE .. LOOP\"","Comment répéter les mêmes instructions tant qu'une condition est vraie"]
[]
[null,"Les tableaux de variables","Variables stockées dans un tableau pour en rendre la programmation plus efficace"]
[]
[null,"Gestion des erreurs","Ou comment éviter les plantages ?"]
[]
[null,"Exercice final"]

{"sheet":"Éditeur VBA","index":1,"n_rows":45,"n_cols":13,"rows_kept":45,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
[null,"L’éditeur VBA (Ruban développeur .. Visual basic)"]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[null,"=> Lorsque vous programmez en VBA, voici les éléments principaux à afficher :"]
[]
[null,"(1)","o   Affichage .. Code"]
[null,"(2)","o   Affichage .. Explorateur de projet"]
[null,null,null,"§  Feuilles, « This Lookbook », Modules du projet"]
[null,"(3)","o   Affichage .. Fenêtre propriétés"]
[null,null,null,"§  Permet de renommer un module"]
[null,"(4)","o   Affichage .. Fenêtre Exécution"]
[null,null,null,"§  Permet d’afficher les résultats intermédiaires d’une macro ou fonction"]
[null,"(5)","o   Affichage .. Barre d’outils .. Edition"]
[null,null,null,"§  Contient notamment des boutons qui permettent de basculer en commentaire et vice-versa"]
[null,"(6)","o   Affichage .. Barre d’outils .. Standard"]
[null,null,null,"§  Contient notamment des boutons qui permettent d’exécuter les procédures"]

{"sheet":"Sélection","index":2,"n_rows":22,"n_cols":13,"rows_kept":22,"cut":false,"hidden":false,"merged":[]}
["Dans le module 'A_Sélections', créez les 'SUB' décrites ci-dessous",null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Ensuite, associez-les aux boutons 'Formulaire'. En vis-à-vis de ceux-ci, créez des boutons 'ActiveX' qui exécutent les mêmes procédures."]
["Donnez une taille de 1 cm sur 2 à tous les boutons et rectifiez leur alignement."]
["NB :","Copiez-collez les cellules ci-dessous (B8:E22) dans le module 'A_Sélections', ça permettra d'avoir les énoncés toujours visibles"]
[null,"Passez toutes les lignes en commentaire"]
[]
[]
[null,"Sélection1","Sélection de la cellule J8 en utilisant l'instruction 'RANGE'. Écrire OK dans la cellule."]
[]
[null,null,"VBA :"]
[]
[null,"Sélection2","Sélection de la plage de cellule de J12 à L12, placez des bordures doubles à cette sélection"]
[]
[null,null,"VBA :"]
[]
[null,"Sélection3","Sélection de la zone nommée \"MaSélection\""]
[]
[null,null,"VBA :"]
[]
[null,"Sélection4","Sélection de la cellule C20 en utilisant l'instruction 'CELLS'. Affichage du contenu de cette cellule dans une boîte message"]
[]
[null,null,"VBA :"]

{"sheet":"Sélection-Solution","index":3,"n_rows":46,"n_cols":15,"rows_kept":46,"cut":false,"hidden":false,"merged":[]}
["Dans le module 'A_Sélections', créez les 'SUB' décrites ci-dessous",null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Ensuite, associez-les aux boutons 'Formulaire'. En vis-à-vis de ceux-ci, créez des boutons 'ActiveX' qui exécutent les mêmes procédures."]
["Donnez une taille de 1 cm sur 2 à tous les boutons et rectifiez leur alignement."]
[]
[]
[]
[]
[null,"Sélection1","Sélection de la cellule J8 en utilisant l'instruction 'RANGE'. Écrire OK dans la cellule.",null,null,null,null,null,null,"OK"]
[]
[null,null,"VBA :","CF Code : Via clic droit sur le bouton .. Affecter une macro .. Modifier"]
[]
[null,"Sélection2","Sélection de la plage de cellule de J12 à L12, placez des bordures doubles à cette sélection"]
[]
[null,null,"VBA :"]
[]
[null,"Sélection3","Sélection de la zone nommée \"MaSélection\""]
[]
[null,null,"VBA :"]
[]
[null,"Sélection4","Sélection de la cellule C20 en utilisant l'instruction 'CELLS'. Affichage du contenu de cette cellule dans une boîte message"]
[]
[null,null,"VBA :"]
[]
[]
[null,"NB : Toutes les procédures, méthodes et propriétés associées à l'objet Range (ou Cells), se trouvent ici : https://learn.microsoft.com/fr-fr/office/vba/api/excel.range(object)",null,null,null,null,null,null,null,null,null,null,null,null,"Lien vers la page"]
[]
[null,"Trucs et astuces 1","Aligner des boutons de type 'formulaire' et leur donner la même taille",null,null,null,null,null,"Lien vers la vidéo"]
[]
[null,"Trucs et astuces 2","=> Taper le nom de l'objet dans une procédure VBA, se placer dans le mot .. F1 : Nous obtenons l'aide contextuelle associée à cet objet"]
[null,null,"=> Taper \"Range\" .. F1. Pour aller plus loin dans le paramétrage des propriétés, aller, par exemple, sur \"Bordures\" .. Cliquer sur le lien associé et nous aurons accès aux propriétés de l'objet \"Bordures\""]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[null,null,"=> La saisie semi-automatique en VBA, nous permet d'avoir les propositions de propriétés et de paramétrage de ces propriétés."]

{"sheet":"Renseignements","index":4,"n_rows":27,"n_cols":13,"rows_kept":27,"cut":false,"hidden":false,"merged":[]}
["Dans le module 'B_Renseignements', créez les 'SUB' décrites ci-dessous",null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Ces procédures permettent de se positionner en B8 et d'écrire tous les renseignements demandés sous différentes formes :"]
[null,"- Dans les cellules adéquates, dans une MsgBox, dans un(e) UserForm"]
["Associez ces procédures à des boutons 'formulaire' pour les tester"]
["NB: Visualiser le résultat en testant les boutons de la feuille 'Renseignements-Solution'"]
[]
[]
[null,"Texte à récupérer",null,null,null,"Texte de la cellule B8 :"]
[]
[null,null,null,null,null,"Numéro de la ligne de la cellule sélectionnée :"]
[]
[null,null,null,null,null,"Numéro de la colonne de la cellule sélectionnée :"]
[]
[null,null,null,null,null,"Référence de la cellule sélectionnée :"]
[]
[null,null,null,null,null,"Nom de la feuille active :"]
[]
[null,null,null,null,null,"Nom du fichier actif :"]
[]
[null,null,null,null,null,"Chemin du fichier actif :"]
[]
[null,null,null,null,null,"Date du jour :"]
[]
[null,null,null,null,null,"Heure actuelle :"]
[]
[]
[null,"NB : Vous trouverez ici une liste des fonctions VBA : https://learn.microsoft.com/fr-fr/office/vba/language/reference/functions-visual-basic-for-applications",null,null,null,null,null,null,null,null,null,null,"Lien vers la page"]

{"sheet":"Renseignements-Solution","index":5,"n_rows":27,"n_cols":13,"rows_kept":27,"cut":false,"hidden":false,"merged":[]}
["Dans le module 'B_Renseignements', créez les 'SUB' décrites ci-dessous",null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Ces procédures permettent de se positionner en B8 et d'écrire tous les renseignements demandés sous différentes formes :"]
[null,"- Dans les cellules adéquates, dans une MsgBox, dans un(e) UserForm"]
["Associez ces procédures à des boutons 'formulaire' pour les tester"]
[]
[]
[]
[null,"Texte à récupérer",null,null,null,"Texte de la cellule B8 :"]
[]
[null,null,null,null,null,"Numéro de la ligne de la cellule sélectionnée :"]
[]
[null,null,null,null,null,"Numéro de la colonne de la cellule sélectionnée :"]
[]
[null,null,null,null,null,"Référence de la cellule sélectionnée :"]
[]
[null,null,null,null,null,"Nom de la feuille active :"]
[]
[null,null,null,null,null,"Nom du fichier actif :"]
[]
[null,null,null,null,null,"Chemin du fichier actif :"]
[]
[null,null,null,null,null,"Date du jour :"]
[]
[null,null,null,null,null,"Heure actuelle :"]
[]
[]
[null,"NB : Vous trouverez ici une liste des fonctions VBA : https://learn.microsoft.com/fr-fr/office/vba/language/reference/functions-visual-basic-for-applications",null,null,null,null,null,null,null,null,null,null,"Lien vers la page"]

{"sheet":"Débogage","index":6,"n_rows":15,"n_cols":13,"rows_kept":15,"cut":false,"hidden":false,"merged":[[8,8,8,10],[10,8,10,10],[12,8,12,10],[14,8,14,10]]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Dans le module \"Solution3_Débogage\" ont été créées plusieurs procédures."]
["L'exécution de ces procédures se fera par l'éditeur VBA, selon ce qui est indiqué en commentaire."]
["Vous y découvrirez : le débogage du code, la fenêtre d'exécution, l'utilisation d'un espion, …"]
[]
[]
[null,null,null,null,null,null,null,null,"Liens vers les vidéos :"]
[]
[null,null,null,null,null,null,null,null,"1) Exécution de la procédure pas à pas"]
[]
[null,null,null,null,null,null,null,null,"2) Mettre un point d'arrêt"]
[]
[null,null,null,null,null,null,null,null,"3) La fenêtre d'exécution"]
[]
[null,null,null,null,null,null,null,null,"4) Les espions"]

{"sheet":"Variables","index":7,"n_rows":22,"n_cols":13,"rows_kept":22,"cut":false,"hidden":false,"merged":[[21,2,21,4]]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Dans le module \"C_Variables1\", créez une SUB 'IntroVariables' qui permet de récupérer le contenu de la cellule à côté "]
["Dans ce module, créez une seconde SUB 'AffichageVariables1' qui affichera les variables dans une MsgBox et dans la fenêtre d'exécution"]
["Au début de ce module (en ligne1), vous ajouterez l'instruction \"Option explicit\" et vous compilerez le projet VBA via le menu 'Débogage'"]
["=> Cette instruction permet de vérifier la syntaxe des variables mais aussi de vérifier si elles sont correctement déclarées (au bon endroit)"]
[]
[]
[]
[null,null,"ABC",null,null,null,"IntroVariables :"]
[]
[null,null,null,null,null,null,"Au départ, se positionner dans la cellule B8"]
[null,null,null,null,null,null,"Placer le numéro de ligne de la cellule active dans une variable LigneDébut et le numéro de la colonne dans une variable ColonneDébut"]
[null,null,null,null,null,null,"Programmer un déplacement dans la cellule à côté en récupérant les contenus des variables LigneDébut et ColonneDébut"]
[null,null,null,null,null,null,"Placer dans une variable strContenu le contenu de la cellule active en minuscule"]
[null,null,null,null,null,null,"Se placer dans la cellule initiale et récupérer le contenu de la variable strContenu"]
[null,null,null,null," "]
[null,null,null,null,null,null,"AffichageVariables1 :"]
[]
[null,null,null,null,null,null,"Afficher les valeurs des variables LigneDébut, ColonneDébut et strContenu dans une MsgBox"]
[null,null,null,null,null,null,"Afficher les valeurs des variables LigneDébut, ColonneDébut et strContenu dans la fenêtre d'exécution"]
[]
[null,"Vidéo","Déclaration et utilisation des variables"]

{"sheet":"Variables-Solution","index":8,"n_rows":22,"n_cols":13,"rows_kept":22,"cut":false,"hidden":false,"merged":[[21,2,21,4]]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Dans un module \"Solution4_Variables1\", créez une SUB 'IntroVariables' qui permet de récupérer le contenu de la cellule à côté "]
["Dans ce module, créez une seconde SUB 'AffichageVariables1' qui affichera les variables dans une MsgBox et dans la fenêtre d'exécution"]
["Au début de ce module (en ligne1), vous ajouterez l'instruction \"Option explicit\" et vous compilerez le projet VBA via le menu 'Débogage'"]
["=> Cette instruction permet de vérifier la syntaxe des variables mais aussi de vérifier si elles sont correctement déclarées (au bon endroit)"]
[]
[]
[]
[null,"abc","ABC",null,null,null,"IntroVariables :"]
[]
[null,null,null,null,null,null,"Au départ, se positionner dans la cellule B8"]
[null,null,null,null,null,null,"Placer le numéro de ligne de la cellule active dans une variable LigneDébut et le numéro de la colonne dans une variable ColonneDébut"]
[null,null,null,null,null,null,"Programmer un déplacement dans la cellule à côté en récupérant les contenus des variables LigneDébut et ColonneDébut"]
[null,null,null,null,null,null,"Placer dans une variable strContenu le contenu de la cellule active en minuscule"]
[null,null,null,null,null,null,"Se placer dans la cellule initiale et récupérer le contenu de la variable strContenu"]
[null,null,null,null," "]
[null,null,null,null,null,null,"AffichageVariables1 :"]
[]
[null,null,null,null,null,null,"Afficher les valeurs des variables LigneDébut, ColonneDébut et strContenu dans une MsgBox"]
[null,null,null,null,null,null,"Afficher les valeurs des variables LigneDébut, ColonneDébut et strContenu dans la fenêtre d'exécution"]
[]
[null,"Vidéo","Déclaration et utilisation des variables"]

{"sheet":"Variables (2)","index":9,"n_rows":12,"n_cols":13,"rows_kept":12,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Dans un module que vous nommez \"D_Variables2\", créez une SUB 'AffichageVariables2' "]
["Cette SUB permet de récupérer le contenu des variables LigneDébut, ColonneDébut et strContenu"]
["et écrit le contenu de strContenu dans la cellule B8"]
[]
[]
[null,null,null,null," "]
[null,null,null,null,null,null,"AffichageVariables2 :"]
[]
[null,null,null,null,null,null,"Afficher les valeurs des variables LigneDébut, ColonneDébut et strContenu dans une MsgBox"]
[null,null,null,null,null,null,"Afficher les valeurs des variables LigneDébut, ColonneDébut et strContenu dans la fenêtre d'exécution"]
[null,null,null,null,null,null,"Récupérer le contenu de strContenu et l'écrire dans la cellule B8"]

{"sheet":"Variables (2)-Solution","index":10,"n_rows":12,"n_cols":13,"rows_kept":12,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Dans un module que vous nommez \"Solution5_Variables2\", créez une SUB 'AffichageVariables2' "]
["Cette SUB permet de récupérer le contenu des variables LigneDébut, ColonneDébut et strContenu"]
["et écrit le contenu de strContenu dans la cellule B8"]
[]
[]
[null,null,null,null," "]
[null,null,null,null,null,null,"AffichageVariables2 :"]
[]
[null,null,null,null,null,null,"Afficher les valeurs des variables LigneDébut, ColonneDébut et strContenu dans une MsgBox"]
[null,null,null,null,null,null,"Afficher les valeurs des variables LigneDébut, ColonneDébut et strContenu dans la fenêtre d'exécution"]
[null,null,null,null,null,null,"Récupérer le contenu de strContenu et l'écrire dans la cellule B8"]

{"sheet":"Sub-Function","index":11,"n_rows":13,"n_cols":13,"rows_kept":13,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les procédures de type 'SUB' versus les procédures de type 'FUNCTION'"]
["Dans un module \"E_SubFunction1\", créez les procédures de type SUB et FUNCTION permettant de faire ce qui suit :"]
[null,"- Calcul du prix TVAC selon les PHTVA écrits en colonne B"]
[]
[]
[]
[null,"PHTVA","PTVAC"]
[null,15]
[null,50]
[null,260]
[null,100]
[null,250]

{"sheet":"Sub-Function-Solution","index":12,"n_rows":29,"n_cols":13,"rows_kept":29,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les procédures de type 'SUB' versus les procédures de type 'FUNCTION'"]
["Dans un module \"Solution6_SubFunction1\", créez les procédures de type SUB et FUNCTION permettant de faire ce qui suit :"]
[null,"- Calcul du prix TVAC selon les PHTVA écrits en colonne B"]
[]
[]
[]
[null,"PHTVA","PTVAC",null,null,"Formules",450,{"$f":"G8+G8*21%","v":544.5}]
[null,15,18.149999999999999]
[null,50,60.5,null,null,"Procédures SUB",450,544.5]
[null,260]
[null,100]
[null,250,null,null,null,null,"Bouton formulaire",null,null,"Sub Solution_MacPTVAC()"]
[null,null,null,null,null,null,null,null,null,"    ActiveCell.FormulaR1C1 = \"=RC[-1]+RC[-1]*21%\""]
[null,null,null,null,null,null,null,null,null,"End Sub"]
[]
[null,null,null,null,null,null,"Bouton 'contrôle' ActiveX",null,null,"Private Sub CommandButton1_Click()"]
[null,null,null,null,null,null,null,null,null,"    Solution_MacPTVAC"]
[null,null,null,null,null,null,null,null,null,"End Sub"]
[]
[null,null,null,null,null,"Fonctions",450,"=Solution_Ptvac(G21)",null,"Function Solution_Ptvac(phtva)",null,null,"Ici, les arguments ne sont pas définis"]
[null,null,null,null,null,null,null,null,null,"    Solution_Ptvac = phtva + phtva * 21 / 100"]
[null,null,null,null,null,null,null,null,null,"End Function"]
[]
[null,null,null,null,null,null,null,"=Solution_Ptvac2(G21;0,21)",null,"Function Solution_Ptvac2(phtva As Double, taux As Double) As Double"]
[null,null,null,null,null,null,null,null,null,"    Solution_Ptvac2 = phtva + phtva * taux"]
[null,null,null,null,null,null,null,null,null,"End Function"]
[]
[null,null,null,null,null,null,null,"NB : Cette dernière fonction a été ajoutée à la catégorie \"Calculs sur les prix\", via la procédure \"AjouterSolution_Ptvac2_A_CategoriePerso\""]

{"sheet":"Sub-Function (2)","index":13,"n_rows":17,"n_cols":13,"rows_kept":17,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les procédures de type 'SUB' versus les procédures de type 'FUNCTION'"]
["Dans un module \"F_SubFunction2\", créez les procédures de type SUB et FUNCTION permettant de faire ce qui suit :"]
["Écrire Madame ou Monsieur dans la colonne 'Titre' selon le sexe"]
["NB : Utilisation des instructions \"If .. Then .. Else\" et \"Select Case\""]
[]
[]
[]
[]
[]
[null,"Noms","Prénoms","Sexe","Titre"]
[null,"Deuf","John","m"]
[null,"Noux","Marion","f"]
[null,"Cléssoulaporte","Djamila","F"]
[null,"Lenti","Sarah","f"]
[null,"Mieux","Jeff","m"]
[null,"Mieux","Edmond","M"]

{"sheet":"Sub-Function (2)-Solution","index":14,"n_rows":17,"n_cols":13,"rows_kept":17,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les procédures de type 'SUB' versus les procédures de type 'FUNCTION'"]
["Dans un module \"Solution7_SubFunction2\", créez les procédures de type SUB et FUNCTION permettant de faire ce qui suit :"]
["Écrire Madame ou Monsieur dans la colonne 'Titre' selon le sexe"]
["NB : Utilisation des instructions \"If .. Then .. Else\" et \"Select Case\""]
[]
[]
[]
[]
[]
[null,"Noms","Prénoms","Sexe","Titre"]
[null,"Deuf","John","m","Monsieur"]
[null,"Noux","Marion","f",{"$f":"Solution_TitreFCT(D13)","v":"Madame"}]
[null,"Cléssoulaporte","Djamila","F",{"$f":"Solution_TitreFCT(D14)","v":"Madame"}]
[null,"Lenti","Sarah","f",{"$f":"Solution_TitreFCT(D15)","v":"Madame"}]
[null,"Mieux","Jeff","m",{"$f":"Solution_TitreFCT(D16)","v":"Monsieur"}]
[null,"Mieux","Edmond","M",{"$f":"Solution_TitreFCT(D17)","v":"Monsieur"}]

{"sheet":"Sub-Function (3)","index":15,"n_rows":18,"n_cols":13,"rows_kept":18,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les procédures de type 'SUB' versus les procédures de type 'FUNCTION'"]
["Dans un module \"G_SubFunction3\", créez les procédures de type SUB permettant de faire ce qui suit :"]
["Écrire Madame, Mademoiselle ou Monsieur dans la colonne 'Titre' selon le sexe et l'état civil"]
["NB : Utilisation des instructions \"If .. Then .. Else\" et \"Select Case\""]
["NB : Pour tester le code de la solution, il faut aller en VBA et enlever les commentaires (les apostrophes) en début de ligne des instructions à exécuter"]
[]
[]
[]
[]
[]
[null,"Noms","Prénoms","Sexe","EC","Titre"]
[null,"Deuf","John","m","Marié(e)"]
[null,"Noux","Marion","f","Célibataire"]
[null,"Cléssoulaporte","Djamila","F","marié(e)"]
[null,"Lenti","Sarah","f","Divorcé(e)"]
[null,"Mieux","Jeff","m","Célibataire"]
[null,"Mieux","Edmond","M","Divorcé(e)"]

{"sheet":"Sub-Function (3)-Solution","index":16,"n_rows":18,"n_cols":13,"rows_kept":18,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les procédures de type 'SUB' versus les procédures de type 'FUNCTION'"]
["Dans un module \"Solution8_SubFunction3\", créez les procédures de type SUB permettant de faire ce qui suit :"]
["Écrire Madame, Mademoiselle ou Monsieur dans la colonne 'Titre' selon le sexe et l'état civil"]
["NB : Utilisation des instructions \"If .. Then .. Else\" et \"Select Case\""]
["NB : Pour tester le code, il faut aller en VBA et enlever les commentaires (les apostrophes) en début de ligne des instructions à exécuter"]
[]
[]
[]
[]
[]
[null,"Noms","Prénoms","Sexe","EC","Titre"]
[null,"Deuf","John","m","Marié(e)","Monsieur"]
[null,"Noux","Marion","f","Célibataire","Mademoiselle"]
[null,"Cléssoulaporte","Djamila","F","marié(e)","Madame"]
[null,"Lenti","Sarah","f","Divorcé(e)","Madame"]
[null,"Mieux","Jeff","m","Célibataire","Monsieur"]
[null,"Mieux","Edmond","M","Divorcé(e)"]

{"sheet":"Sub-Function-Application","index":17,"n_rows":15,"n_cols":13,"rows_kept":15,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Créez des fonctions qui permettent d'écrire \"De luxe\" pour les biens \"A\", \"Bas de gamme\" pour les biens \"B\" et \"Ordinaire\" pour les autres"]
["Créez une SUB qui permettent d'écrire \"De luxe\" pour les biens \"A\", \"Bas de gamme\" pour les biens \"B\" et \"Ordinaire\" pour les autres"]
[]
["NB : Réaliser ces procédures selon les consignes indiquées dans le module \"H_SubFunction4\""]
[]
[]
[null,null,"Produits","Catégorie","Type"]
[null,null,"Produit1","A"]
[null,null,"Produit2","B"]
[null,null,"Produit3","e"]
[null,null,"Produit4","a"]
[null,null,"Produit5","b"]
[null,null,"Produit6","C"]
[null,null,"Produit7","C"]

{"sheet":"Boucles","index":18,"n_rows":14,"n_cols":13,"rows_kept":14,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les boucles \"FOR .. NEXT\""]
[]
["Dans un module \"I_Boucles\", créez une SUB \"Boucle_For\" qui permet de faire ce qui suit :"]
["Se positionner en E9 et exécuter la procédure \"Solution_Titre\" autant de fois qu'il y a de noms en colonne B"]
[]
[]
[null,"Noms","Prénoms","Sexe","Titre"]
[null,"Deuf","John","m"]
[null,"Noux","Marion","f"]
[null,"Cléssoulaporte","Djamila","F"]
[null,"Lenti","Sarah","f"]
[null,"Mieux","Jeff","m"]
[null,"Mieux","Edmond","M"]

{"sheet":"Boucles-Solution","index":19,"n_rows":14,"n_cols":13,"rows_kept":14,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les boucles \"FOR .. NEXT\""]
[]
["Dans un module \"Solution9_Boucles\", créez une SUB \"Solution_Boucle_For\" qui permet "]
["de se positionner en E9 et d'exécuter la procédure \"Solution_Titre\" autant de fois qu'il y a de noms en colonne B"]
[]
[]
[null,"Noms","Prénoms","Sexe","Titre"]
[null,"Deuf","John","m"]
[null,"Noux","Marion","f"]
[null,"Cléssoulaporte","Djamila","F"]
[null,"Lenti","Sarah","f"]
[null,"Mieux","Jeff","m"]
[null,"Mieux","Edmond","M"]

{"sheet":"Boucles (2)","index":20,"n_rows":14,"n_cols":13,"rows_kept":14,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les boucles \"DO UNTIL .. LOOP\""]
[]
["Dans un module \"J_Boucles2\", créez une SUB \"Boucle_Until\" qui permet "]
["de se positionner en E9 et d'exécuter la procédure \"Solution_Titre\" jusqu'au moment où il n'y a plus de données dans la cellule de gauche"]
[]
[]
[null,"Noms","Prénoms","Sexe","Titre"]
[null,"Deuf","John","m"]
[null,"Noux","Marion","f"]
[null,"Cléssoulaporte","Djamila","F"]
[null,"Lenti","Sarah","f"]
[null,"Mieux","Jeff","m"]
[null,"Mieux","Edmond","M"]

{"sheet":"Boucles (2)-Solution","index":21,"n_rows":14,"n_cols":13,"rows_kept":14,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les boucles \"DO UNTIL .. LOOP\""]
[]
["Dans un module \"Solution10_Boucles2\", créez une SUB \"Solution_Boucle_Until\" qui permet "]
["de se positionner en E9 et d'exécuter la procédure \"Solution_Titre\" jusqu'au moment où il n'y a plus de données dans la cellule de gauche"]
[]
[]
[null,"Noms","Prénoms","Sexe","Titre"]
[null,"Deuf","John","m","Monsieur"]
[null,"Noux","Marion","f","Madame"]
[null,"Cléssoulaporte","Djamila","F","Madame"]
[null,"Lenti","Sarah","f","Madame"]
[null,"Mieux","Jeff","m","Monsieur"]
[null,"Mieux","Edmond","M","Monsieur"]

{"sheet":"Boucles (3)","index":22,"n_rows":14,"n_cols":13,"rows_kept":14,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les boucles \"DO WHILE .. LOOP\""]
[]
["Dans un module \"K_Boucles3\", créez une SUB \"Solution_Boucle_While\" qui permet "]
["de se positionner en E9 et d'exécuter la procédure \"Solution_Titre\" tant qu'il y a des données dans la cellule de gauche"]
[]
[]
[null,"Noms","Prénoms","Sexe","Monsieur"]
[null,"Deuf","John","m"]
[null,"Noux","Marion","f"]
[null,"Cléssoulaporte","Djamila","F"]
[null,"Lenti","Sarah","f"]
[null,"Mieux","Jeff","m"]
[null,"Mieux","Edmond","M"]

{"sheet":"Boucles (3)-Solution","index":23,"n_rows":14,"n_cols":13,"rows_kept":14,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les boucles \"DO WHILE .. LOOP\""]
[]
["Dans un module \"Solution11_Boucles3\", créez une SUB \"Solution_Boucle_While\" qui permet "]
["de se positionner en E8 et d'exécuter la procédure \"Solution_Titre\" tant qu'il y a des données dans la cellule de gauche"]
[]
[]
[null,"Noms","Prénoms","Sexe","Titre"]
[null,"Deuf","John","m","Monsieur"]
[null,"Noux","Marion","f","Madame"]
[null,"Cléssoulaporte","Djamila","F","Madame"]
[null,"Lenti","Sarah","f","Madame"]
[null,"Mieux","Jeff","m","Monsieur"]
[null,"Mieux","Edmond","M","Monsieur"]

{"sheet":"Tableaux de variables","index":24,"n_rows":6,"n_cols":13,"rows_kept":6,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les tableaux de variables"]
["Dans un module \"L_TableauVariables\", créez une SUB \"TableauUtilisateurs\" dans laquelle sont encodés des utilisateurs autorisés à utiliser le classeur."]
["Ceux-ci sont encodés dans un tableau de variables et seront écrits sur la feuille en colonne C, à partir de C8 en utilisant une boucle \"FOR\""]
["Recopiez cette procédure sous le nom \"TableauUtilisateurs2\". Dans celle-ci faites-en sorte qu'un écran d'encodage permette à l'utilisateur d'encoder son nom."]
["Si le nom encodé est connu dans le tableau de variables, un message de bienvenue est adressé à l'utilisateur, si pas, un message moins sympa lui sera adressé."]

{"sheet":"Tableaux de variables-Solution","index":25,"n_rows":6,"n_cols":13,"rows_kept":6,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Les tableaux de variables"]
["Dans un module \"Solution12_TableauVariables\", créez une SUB \"Solution_TableauUtilisateurs\" dans laquelle sont encodés des utilisateurs autorisés à utiliser le classeur."]
["Ceux-ci sont encodés dans un tableau de variables et seront écrits sur la feuille en colonne C, à partir de C8 en utilisant une boucle \"FOR\""]
["Recopiez cette procédure sous le nom \"Solution_TableauUtilisateurs2\". Dans celle-ci faites-en sorte qu'un écran d'encodage permette à l'utilisateur d'encoder son nom."]
["Si le nom encodé est connu dans le tableau de variables, un message de bienvenue est adressé à l'utilisateur, si pas, un message moins sympa lui sera adressé."]

{"sheet":"Gestion des erreurs","index":26,"n_rows":18,"n_cols":13,"rows_kept":18,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Gestion des erreurs d'encodage"]
["Dans un module \"M_GestionErreurs\", modifiez la SUB \"GestionErreur\" qui permet d'encoder la date de naissance dans la cellule active via une InputBox."]
["Faire en sorte d'éviter le \"plantage\" en cas d'encodage d'une données d'un autre type qu'une date."]
["Ajouter un contrôle de façon à vérifier que la cellule est vide et sortir de cette procédure dans le cas contraire."]
["NB : la procédure pourrait être améliorée en vérifiant la présence de date et en proposant une fenêtre dans laquelle seraient encodés d'autres renseignements (UserForm)"]
[]
[]
[null,"Noms","Prénoms","Sexe","Date de naissance"]
[null,"Deuf","John","m","1970-10-05"]
[null,"Noux","Marion","f","1990-08-05"]
[null,"Cléssoulaporte","Djamila","f","1988-08-08"]
[null,"Lenti","Sarah","f"]
[null,"Mieux","Jeff","m"]
[null,"Mieux","Edmond","m"]
[]
[]
[null,"NB : Remarque importante pour les programmeurs en herbe"]

{"sheet":"Gestion des erreurs-Solution","index":27,"n_rows":18,"n_cols":13,"rows_kept":18,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,null,null,null,null,null,null,null,null,"Retour"]
["Gestion des erreurs d'encodage"]
["Dans un module \"Solution13_GestionErreurs\", modifiez la SUB \"Solution_GestionErreur\" qui permet d'encoder la date de naissance dans la cellule active via une InputBox."]
["Faire en sorte d'éviter le \"plantage\" en cas d'encodage d'une données d'un autre type qu'une date."]
["Ajouter un contrôle de façon à vérifier que la cellule est vide et sortir de cette procédure dans le cas contraire."]
["NB : la procédure pourrait être améliorée en vérifiant la présence de date et en proposant une fenêtre dans laquelle seraient encodés d'autres renseignements (UserForm)"]
[]
[]
[null,"Noms","Prénoms","Sexe","Date de naissance"]
[null,"Deuf","John","m","1988-08-08"]
[null,"Noux","Marion","f","2023-03-21"]
[null,"Cléssoulaporte","Djamila","f","1977-07-07"]
[null,"Lenti","Sarah","f","1966-06-06"]
[null,"Mieux","Jeff","m"]
[null,"Mieux","Edmond","m"]
[]
[]
[null,"NB : Remarque importante pour les programmeurs en herbe"]