{"text_format":"3","workbook":"xlsx","n_sheets":1,"sheets":["TUTO"],"not_rendered":{"images":13,"macros":1,"defined_names":6},"read":"whole","date_system":"1900"}

{"sheet":"TUTO","index":0,"n_rows":318,"n_cols":13,"rows_kept":318,"merged":[[0,0,0,6],[0,8,16,8],[1,0,1,6],[4,4,5,6],[9,0,10,6],[11,0,11,6],[13,4,15,6],[18,8,20,14],[33,0,33,6],[80,0,80,6],[81,0,81,6],[84,4,86,6],[91,0,92,6],[93,0,93,6],[95,4,97,6],[111,0,111,6],[145,0,145,6],[159,0,159,6],[211,0,211,6],[220,0,220,6],[268,0,268,6],[269,0,269,6],[295,0,295,6]]}
["Recréer un bouton type bouton à bascule",{"$nulls":7}," Exemple du fonctionnement"]
["Pour disposer d'un bouton du même type que le ctrl ActiveX Bouton Bascule, mais  totalement personnalisable, il faut créer une Forme et le transformer en bouton (°v°)"]
["1. Onglet Insérer > Formes > Au choix",{"$nulls":8},"Démo Bouton Bascule",null,null,"Cellule liée au bouton"]
[{"$nulls":12},"Bouton poussé"]
[{"$nulls":4},"2. Puis il ne reste plus qu'avec l'outil Format, de lui donner son apparence de base."]
[{"$nulls":9},"Démo Bouton Normal"]
[]
[]
[{"$nulls":9},"Démo Bouton Tournoyant"]
["3. Le Bouton Bascule, à 2 états : Poussé et Non poussé\nCela implique de réfléchir, de la personnalisation à appliquer à ces états.\nLa convention en ce domaine consiste au choix :"]
[]
["1/ D'utiliser pour l'état poussé, une couleur foncé par rapport à la couleur de base \n2/ D'utiliser un effet 3D de biseau en forme de bouton pour l'état Non poussé",{"$nulls":8},"Démo Bouton Clignotant"]
["Et d'utiliser un effet 3D de biseau en forme de creux pour l'état Poussé"]
["Etat Non poussé","Etat Poussé",null,null,"Pour ce tuto, le bouton reprendra les 2 possibilités, ce qui permet de bien rendre l'effet de poussement sur le bouton."]
[{"$nulls":9},"Démo Incliner un Contrôle Bouton ActiveX"]
[]
["4. Dans ce tuto, nous allons jouer sur la modification que de 2 variables de l'objet."]
[]
["> Sa couleur Shapes(\"Bouton_bascule\").Fill.ForeColor.RGB = RGB(0, 112, 192)",{"$nulls":7},"TUTO : Créer des contrôles Boutons\nTotalement personalisables avec des effets"]
["> L'effet de biseau Shapes(\"Bouton_bascule\").ThreeD.BevelTopType = msoBevelHardEdge"]
["Afin de simplifier le codage, vous pouvez récupérer les 2 couleurs RGB et"]
["les 2 biseaux en utilisant l'enregistreur de macros",{"$nulls":7},"* Tuto destiné pour les utilisateurs avancés"]
["Ainsi à chaque clic, la macro rattachée au bouton, changera les 2 propriétés afin de"]
["rendre l'état du bouton, de plus le bouton Bascule ayant aussi une cellule lié, on"]
["profitera de ce moment pour MàJ la cellule liée."]
[]
["Voilà, l'animation de ce type de bouton est très simple, maintenant la partie Algo. ;-)"]
[]
[]
[]
[]
[]
[]
["Final - Et départ du codage VBA"]
["Pour le codage, voir le Dev. VBA, le code est commenté."]
[]
["Est archivé dans la Macro Sub ARCHIVES_OPTIONS_PROPRIETES_OBJETS()"]
["Certaines des propriétés de l'objet Forme similaires aux propriétés du Ctrl ActiveX "]
[]
["La macro de base consiste à appuyer sur le bouton bascule pour MàJ une cellule liée."]
["Cette cellule doit de préférence être nommée (CELL_LIEE_BOUT_POUSSOIR) afin de"]
["permettre de ne pas à avoir à recoder sa position si changement dans le classeur."]
[]
["Si pas de macro ou message à lancer après chaque clic "]
["L'algo consiste à :"]
["1. Définir à l'aide de sa couleur, l'état du bouton"]
["2. Changer les 2 propriétés de la Forme"]
["3. MàJ la cellule liée"]
[]
[]
["Si macro / message à lancer après chaque clic ou grand nombre de propriétés à changer"]
["L'algo consiste à :"]
["1. Désactiver l'affichage pour rendre plus rapide le déroulement du code"]
["2. Définir à l'aide de sa couleur, l'état du bouton"]
["3. Changer les 2 propriétés de la Forme"]
["4. MàJ la cellule liée"]
["5. Réactiver l'affichage ici, afin de donner l'effet de poussement sur le bouton"]
["6. Lancer la macro / Message à partir de ce moment"]
[]
[]
["Astuce pour raccourcir la ligne de code de l'objet Shape et ne devoir modifier l'objet géré qu'une fois"]
["Vous pouvez déclarer une variable shapes et définir cet l'objet. Ainsi si vous avez plusieurs boutons de "]
["ce type, il n'y aura plus qu'à modifier le nom de l'objet au moment de la définition de l'objet."]
[]
["Private Sub Ex_raccourci_code_shape()"]
[]
["Dim sh As Shape '1. déclarer variable objet"]
["Set sh = Shapes(\"Bouton_Bascule\") '2. définir la variable avec l'objet à gérer"]
["X = sh.Name '3. exemple d'action sur l'objet"]
["couleur = sh.Fill.ForeColor.RGB '3. exemple d'action sur l'objet"]
[]
["End Sub"]
{"$rows_empty":8}
["Recréer un bouton type bouton avec effet d'appuie"]
["Pour disposer d'un bouton du même type que le ctrl ActiveX Bouton, mais  totalement personnalisable avec effet d'appuis, il faut créer une Forme et le transformer en bouton (°v°)"]
["1. Onglet Insérer > Formes > Au choix"]
[]
[{"$nulls":4},"2. Puis il ne reste plus qu'avec l'outil Format, de lui donner son apparence de base."]
[]
[]
[]
[]
[]
[]
["3. Le Bouton, comme le Bouton Bascule, à 2 états : Poussé et Non poussé\nCela implique de réfléchir, de la personnalisation à appliquer à ces états.\nIci pas de convention, car l'effet ne dure qu'1 seconde, l'effet consiste au choix :"]
[]
["1/ D'utiliser pour l'état poussé, une couleur foncé par rapport à la couleur de base pour renforcer un peu l'effet.\n2/ D'utiliser une couleur totalement différente pour créer un effet de flash\n3/ D'utiliser un effet 3D de biseau en forme de bouton pour l'état Non poussé\n4/ Répéter sa propre ligne de couleur pour prolonger l'effet d'appuie sur le bouton"]
["Et d'utiliser un effet 3D de biseau en forme de creux pour l'état Poussé"]
["Etat Non poussé","Etat Poussé",null,null,"Pour ce tuto, le bouton reprendra les possibilités 2 et 4, ce qui permet de bien rendre l'effet de poussement sur le bouton."]
[]
[]
["4. Dans ce tuto, nous allons jouer sur la modification que de 2 variables de l'objet."]
["> Sa couleur Shapes(\"Bouton_bascule\").Fill.ForeColor.RGB = RGB(0, 112, 192)"]
["> L'effet de biseau Shapes(\"Bouton_bascule\").ThreeD.BevelTopType = msoBevelRelaxedInset"]
["Afin de simplifier le codage, vous pouvez récupérer la couleur RGB et"]
["les 2 biseaux en utilisant l'enregistreur de macros"]
["Ainsi à chaque clic, la macro rattachée au bouton, changera les 2 propriétés afin de créer l'effet"]
[]
["Voilà, l'animation de ce type de bouton est très simple, maintenant la partie Algo. ;-)"]
[]
[]
[]
[]
[]
["Final - Et départ du codage VBA"]
["Pour le codage, voir le Dev. VBA, le code est commenté."]
[]
["Est archivé dans la Macro Sub ARCHIVES_OPTIONS_PROPRIETES_OBJETS()"]
["Certaines des propriétés de l'objet Forme similaires aux propriétés du Ctrl ActiveX "]
[]
["La macro de base consiste à appuyer sur le bouton faire un effet d'appuie et lancer une action."]
[]
["Il ne doit pas y avoir trop de propriétés à modifier afin de garder un code court à lire"]
["L'algo est en 2 parties et consiste à poussé et dépoussé le bouton à la suite :"]
["1. Animation d'appuie toujours au départ"]
["2. Mettre le bouton en état poussé"]
["3. Raffraichir l'écran pour afficher cet état"]
["4. Remettre le bouton dans son état d'origine non poussé"]
["5. Raffraichir l'écran pour afficher cet état, ce qui crée l'effet de pression sur le bouton"]
["6. Lancer la macro / Message à partir de ce moment"]
[]
[]
["Astuce pour raccourcir la ligne de code de l'objet Shape et ne devoir modifier l'objet géré qu'une fois"]
["Vous pouvez déclarer une variable shapes et définir cet l'objet. Ainsi si vous avez plusieurs boutons de "]
["ce type, il n'y aura plus qu'à modifier le nom de l'objet au moment de la définition de l'objet."]
[]
["Private Sub Ex_raccourci_code_shape()"]
[]
["Dim sh As Shape '1. déclarer variable objet"]
["Set sh = Shapes(\"Bouton_Bascule\") '2. définir la variable avec l'objet à gérer"]
["X = sh.Name '3. exemple d'action sur l'objet"]
["couleur = sh.Fill.ForeColor.RGB '3. exemple d'action sur l'objet"]
[]
["End Sub"]
[]
[]
[]
[]
["Recréer un bouton type bouton avec effet tournoyant"]
["La création du Bouton tournoyant, suit le même procédé que le Bouton Normal."]
["Conseil :"]
["L'effet tournoyant, fonctionne plus ou moins bien quand le bouton se trouve"]
["dans la partie figée de l'écran, quand activation du blocage des volets"]
["Essayez de supprimer des options de personnalisation (ombre principalement, taille,…)"]
{"$rows_empty":8}
["Final - Et départ du codage VBA"]
["Pour le codage, voir le Dev. VBA, le code est commenté."]
[]
["Est archivé dans la Macro Sub ARCHIVES_OPTIONS_PROPRIETES_OBJETS()"]
["Certaines des propriétés de l'objet Forme similaires aux propriétés du Ctrl ActiveX "]
[]
["La macro de base consiste à faire un effet d'appuie, tourner et lancer une action."]
[]
["Vous avez 6 options de rotation archivées, ces rotations suivent la rotations 3D ci-dessous :"]
{"$rows_empty":7}
[{"$nulls":3},"Par défaut, c''est la rotation sur l'axe Y de 0->360°"]
[]
["Il ne doit pas y avoir trop de propriétés à modifier afin de garder un code court à lire"]
["L'algo combine l'option d'effet d'appuie + la rotation avant de lancer l'action :"]
["1. Animation d'appuie toujours au départ"]
["2. Mettre le bouton en état poussé"]
["3. Raffraichir l'écran pour afficher cet état"]
["4. Remettre le bouton dans son état d'origine non poussé"]
["5. Raffraichir l'écran pour afficher cet état, ce qui crée l'effet de pression sur le bouton"]
["6. Animation de rotation"]
["7. Définir la variable de rotation à sa valeur par défaut pour le départ, ici 0°"]
["8. Afin de partir d'une rotation à 0° si l'image est inclinée, on réajuste la rotation de base de l'objet"]
["9. Boucle de rotation, jusqu'à avoir fait un tour complet (soit 360°)"]
["10. Mettre à jour la rotation de l'objet avant de le montrer"]
["11. Utilisation de Doevents pour raffraichir l'écran afin de montrer la nouvelle rotation de l'objet"]
["12. MàJ de la nouvelle rotation pour le prochain tour (vitesse à ajuster en manuel suivant le"]
["poid du fichier, en effet un fichier lourd entraine une rotation moins rapide avec le même indice, "]
["alors que sur un fichier moins lourd en objet et formule, avec le même indice, on peut avoir une"]
["rotation rapide en 2 secondes"]
["13. Redéfinir l'objet à la rotation par défaut, la rotation ne s'étant pas terminé à 0°"]
["14. Lancer la macro / Message à partir de ce moment"]
[]
["Astuce pour raccourcir la ligne de code de l'objet Shape et ne devoir modifier l'objet géré qu'une fois"]
["Vous pouvez déclarer une variable shapes et définir cet l'objet. Ainsi si vous avez plusieurs boutons de "]
["ce type, il n'y aura plus qu'à modifier le nom de l'objet au moment de la définition de l'objet."]
[]
["Private Sub Ex_raccourci_code_shape()"]
[]
["Dim sh As Shape '1. déclarer variable objet"]
["Set sh = Shapes(\"Bouton_Bascule\") '2. définir la variable avec l'objet à gérer"]
["X = sh.Name '3. exemple d'action sur l'objet"]
["couleur = sh.Fill.ForeColor.RGB '3. exemple d'action sur l'objet"]
[]
["End Sub"]
[]
[]
["Recréer un bouton type bouton avec effet clignotant"]
["La création du Bouton clignotant, suit le même procédé que le Bouton Normal, mais comme seul"]
["point de divergence qu'il n'y aura que la couleur à modifier."]
["Conseil :"]
["L'effet clignotant, fonctionne plus ou moins vite suivant la puissance"]
["de l'ordinateur, du poids du fichier (taille, nombre d'objet, formules,…)"]
["Une mauvaise utilisation de l'effet risquera de farie planter le fichier !"]
[]
[]
["Final - Et départ du codage VBA"]
["Pour le codage, voir le Dev. VBA, le code est commenté."]
[]
["Est archivé dans la Macro Sub ARCHIVES_OPTIONS_PROPRIETES_OBJETS()"]
["Certaines des propriétés de l'objet Forme similaires aux propriétés du Ctrl ActiveX "]
[]
["La macro de base consiste à faire un effet d'appuie, clignoter et lancer une action."]
[]
["Il y'a 2 méthodes archivées de clignotement, une rapide et une autre gérant 2 variables de"]
["vitesse, pour réduire le clignotement, la vitesse dépendra néanmoins toujours de l'ordinateur"]
["du poid du fichier et du nombre de tâches actives sur l'ordinateur."]
["A mon sens, le nombre de clignotements optimale pour avoir un effet réussis se situe à 5"]
[]
["Il ne doit pas y avoir trop de propriétés à modifier afin de garder un code court à lire"]
["L'algo combine l'option d'effet d'appuie + le clignotement avant de lancer l'action :"]
["1. Animation d'appuie toujours au départ"]
["2. Mettre le bouton en état poussé"]
["3. Raffraichir l'écran pour afficher cet état"]
["4. Remettre le bouton dans son état d'origine non poussé"]
["5. Raffraichir l'écran pour afficher cet état, ce qui crée l'effet de pression sur le bouton"]
["6. Animation de clignotement"]
["7. Définir les variables de gestion du nombre de tour et de clignotement à 0"]
["9. Boucle de clignotement jusqu'à en avoir fait 5"]
["A mon sens, le nombre de clignotements optimale pour avoir un effet réussis se situe à 5"]
["10. MàJ du nombre de tour en cours avant test pour clignotement"]
["11. On change la couleur de l'objet, dans la couleur opposé en cours (Bleu/Violet)"]
["tous les x tour, valeur x à définir suivant la vitesse souhaité, à ajuster éventuellement avec le"]
["nombre de clignotement suivant l'effet souhaité"]
["12. MàJ du nombre de clignotement venant d'être réalisé en utilisant boucle"]
["13. Raffraichissement de l'écran et redonner la main à l'appli 1 micro seconde pour montrer le "]
["clignotement, dans cet ordre afin que ça marche."]
["14. Redéfinir la couleur de l'objet à sa couleur d'origine"]
["15. Lancer la macro / Message à partir de ce moment"]
[]
["Astuce pour raccourcir la ligne de code de l'objet Shape et ne devoir modifier l'objet géré qu'une fois"]
["Vous pouvez déclarer une variable shapes et définir cet l'objet. Ainsi si vous avez plusieurs boutons de "]
["ce type, il n'y aura plus qu'à modifier le nom de l'objet au moment de la définition de l'objet."]
[]
["Private Sub Ex_raccourci_code_shape()"]
[]
["Dim sh As Shape '1. déclarer variable objet"]
["Set sh = Shapes(\"Bouton_Bascule\") '2. définir la variable avec l'objet à gérer"]
["X = sh.Name '3. exemple d'action sur l'objet"]
["couleur = sh.Fill.ForeColor.RGB '3. exemple d'action sur l'objet"]
[]
["End Sub"]
[]
[]
["Créer un bouton ActiveX avec un effet incliné"]
["Pour disposer d'un bouton ctrl ActiveX avec un effet incliné, cela est très simple mais à un inconvénient (voir démo)"]
["1. Onglet Insérer > Formes > Au choix",{"$nulls":3},"2. Créer l'objet ActiveX "]
{"$rows_empty":10}
["3. On sélectionne les 2 objets > Puis choisir de les grouper"]
[]
[]
[]
[]
["4. Sélectionner le groupe d'objet est lui appliquer les effets voulus et l'inclinaison"]
[]
[]
[]
[{"$nulls":5},"Exemple avec une légére inclinaison"]
["Plus l'inclinaison est forte plus l'inconvénient sera apparent."]
["L'inconvénient est qu'à chaque clic, le contrôle Activex reprend sa forme original, "]
["ce qui peut peut rendre un effet plus ou moins bizarre à l'utilisation."]
[]
["Final - Et départ du codage VBA"]
["Pour le codage, voir le Dev. VBA, le code est commenté."]
[]
["Pour réduire le problème du réffichage par défaut du ctrl ActiveX il faut le rendre invisible."]
["Puis le rerendre visible à nouveau, ce qui le remettra de suite dans son état prévu incliné."]
["Et enfin lancer l'action"]
[]
[]
[]
["Plus le fichier est lourd et/ou l'ordinateur faible, plus il est difficile de faire fonctionner "]
["correctement cet ensemble, surtout les effets rotation et clignotant"]
[]
["Ne fonctionnera pas sur un ordinateur peut puissant pour les effets rotation/clignotant"]
[]
["La vitesse des effets varie suivant la puissance de l'ordi"]
[]
["Les boutons sont totalement personalisables suivant votre"]
["imagination, mais dans les limites d'Excel et de l'ordinateur"]
[]
[]
["Tuto VBA avancé, par COHENNY Tristan dispo sur Excel-Pratique.com"]
["https://www.excel-pratique.com/fr/telechargements/doc-vba-c1.php",{"$nulls":5},"Rubrique du tuto et bien d'autre"]
["https://forum.excel-pratique.com/viewtopic.php?f=10&t=102680",{"$nulls":5},"Forum de suivi"]