Comment créer un controle activex ultrapersonnalisable

Hello, Hello,

Je propose une petite série de tutos, en cours de rédac: Sur la création de contrôles ActiveX ultrapersonnalisables.

Ces propositions, nécessite un ordinateur un peu puissant pour faire tourner le principe convenablement.

Tutos destinés aux codeurs vba avertis

1. La liste déroulante totalement personnalisable en mode avancé

2. Le Sommaire totalement personnalisable en mode avancé

3. Les Boutons totalement personnalisables en mode avancé

Pour commencer : La liste déroulante totalement personnalisable en mode avancé.

tuto creer liste deroulante personalisable excel

Lien du tuto dans la rubrique cours : https://www.excel-pratique.com/fr/telechargements/doc-vba/tuto-liste-deroulante-personnalisable-excel-no321.php

Petite proposition sur comment créer une liste déroulante, personnalisée de manière très avancée avec :

  • des valeurs d'item de liste, avec format police, couleurs de fond, ... différenciable et totalement personnalisable
  • Une liste à plusieurs colonnes en extrapolant le principe
  • des images dans la liste
  • des couleurs suivant l'item de la liste où se trouve la souris
  • reproduire un déroulé de liste

Et aussi : Le Sommaire totalement personnalisable en mode avancé.

present tuto sommaire

Lien du tuto dans la rubrique cours : https://www.excel-pratique.com/fr/telechargements/doc-vba/controle-sommaire-personnalisable-excel-no322.php

Petite proposition sur comment créer un Sommaire, personnalisée de manière très avancée avec :

  • comme pour la liste, la possibilité d'y inclure image, polices, couleur différenciée
  • de suivre un lien hypertexte en scrollant ou par suivi lien hypertexte
  • des couleurs suivant l'item de la liste où se trouve la souris, en utilisant la Mise en Forme Conditionnelle au lieu de VBA
  • reproduire un effet d'affichage par déploiement du Sommaire, en le faisant toujours dans la partie visible d'Excel

Ainsi que : Les Boutons totalement personnalisables en mode avancé.

screen tuto bouton

Lien du tuto dans la rubrique cours : https://www.excel-pratique.com/fr/telechargements/doc-vba/boutons-personnalisables-excel-no324.php

Petite proposition sur comment créer des Boutons du même type que les contrôles ActiveX, personnalisés de manière avancé avec :

  • comment recréer un Bouton Bascule sympa
  • comment recréer un Bouton type commandbutton avec l'effet de pression
  • comment créer pour un bouton, une animation de rotation (6 options X,Y,Z) après un clic
  • comment créer pour un bouton, une animation de clignotement (rapide, ou personnalisé)
  • comment personnalisé un Ctrl ActiveX, en lui mettant un effet d'inclinaison par exemple

F.A.Q. Générale :

> Règle à prendre en compte : Moins il y'aura de personnalisations, moins il y'aura besoin de puissance et plus le code sera rapide à lire

> Règle à prendre en compte : Plus le fichier sera lourd, moins l'animation sera fluide

Bon code

Masterclass & Outils complémentaires de codage rapide

Post qui concernera les masterclass & outils à venir

Sommaire Masterclass

1. 2 Méthodes de MàJ de la plage cellules liée à l'image

2.

1. 2 Méthodes de MàJ de la plage cellules liée à l'image

methode 1 maj plage auto

Démo, illustrée dans le tuto sur la liste déroulante

methode 2 maj plage auto

Démo, illustrée dans le tuto sur le Sommaire

Sommaire Outils complémentaires

1. Outil de création d'image liée avec Contrôles Activex auto-placés

+ Outil de génération de code pour les création d'image avec Contrôle

1. Outil de création d'image liée avec Contrôles Activex auto-placés

+ Outil de génération de code pour les création d'image avec Contrôle

Dans le cadre des tuto sur la création avancé de Contrôle Liste déroulante et Sommaire en mode avancé suivant mon principe mis en avant, j'ai créé 2 outils en 1 d'aide à la création.

screen outil de crea d image liee a cellule avec ctrl activex

1. Il y'a un outil de création d'image liée à une plage cellule, avec une auto-superposition des contrôles Label et un groupement auto.

2. Et aussi un petit outil de génération de codage auto pour chaque Label, histoire de n'avoir à un faire qu'un.

Bonjour Trist.... Waard

Tout d'abord, merci pour ton travail colossal et surtout un grand bravo !

J'ai essayé de suivre ton tuto pour me faire un bouton à bascule... Mais je penses que je suis pas doué :

Je me permet de poster ça ici en me disant que c'est surement une erreur de débutant et que ça peut aider des personnes comme moi à mieux comprendre ton code.

Bonne journée !

Dim sh As Shape
Set sh = Shapes("Bouton_bascule")

'Application.ScreenUpdating = False
If sh.ThreeD.BevelTopType <> msoBevelCircle Then 'si bouton non poussé alors format poussé
    'Format bouton en mode poussé
    sh.ThreeD.BevelTopType = msoBevelRelaxedInset 'effet 3d biseau arrondi convexe
    sh.Fill.ForeColor.RGB = RGB(0, 67, 118) 'Shape en Bleu foncé
    Range("CELL_LIEE_BOUT_POUSSOIR").Value = "Bouton poussé" 'Option d'index d'une valeur liée au bouton
Else
    'Format bouton en mode dépoussé
    sh.ThreeD.BevelTopType = msoBevelCircle  'effet 3d biseau bordure marqué
    sh.Fill.ForeColor.RGB = RGB(0, 112, 192) 'Shape en Bleu normal
    Range("CELL_LIEE_BOUT_POUSSOIR").Value = "Bouton non poussé"

End If
'Application.ScreenUpdating = True
MsgBox "Le bouton a été basculé ;-)", vbInformation, "Test"

End Sub

Hello Hello,

Alors après audit interne du fichier, il y'a 2 pb

Pb de bas niveau :

Inversion dans le type de biseau msoBevelCircle/msoBevelRelaxedInset, msoBevelCircle en position après Si Alors/If then

alors qu'il devrait en position Sinon/Else, du coup à chaque fois ça ne fait qu'une action et la même.

Bon ça ce n'est rien, par rapport à l'autre pb

Pb bloquant

Le fichier est d'après mon inspecteur de fichier, un fichier 1997-2003, apparemment la compatibilité suivant le principe de tuto ne marche pas pour les macros dans une forme.

> Si on lance la macro directement par le développeur ça marche, le bouton flèche change.

> Si on lance la macro par un bouton activex ça marche, le bouton flèche change aussi.

Il faut croire qu'à l'époque il ne devait pas être possible d'affecter une macro à une forme, je n'ai pas trop de souvenir de l'époque à part le crack financier asiatique et la coupe du monde.

Pour résoudre ça, il faudrait passer à une version de fichier plus moderne, si ta version d'Excel le permet, moi je suis sur 2016.

Voila

Salut !

Merci pour l'audit interne !

Pour le Pb de bas niveau :

J'avais compris la logique, mais dépourvu de force mentale j'ai inversé dans un élan de "pourquoi pas" totalement désespéré.

Pour le Pb de haut niveau :

Ma vie est fichue, le fichier sur lequel je veux faire apparaître ce bouton grâce à une macro est issu d'une extraction d'une base nationale qui n'est plus développée depuis ces mots :

""Je crois qu'après avoir vu ça, on peut mourir tranquille ! Enfin, le plus tard possible quand même mais... On peut ! Ah c'est superbe ! Quel pied ! Ah quel pied ! Oh putain ! Oh la la la la la la ! Oh ! Oh c'est pas vrai ! Oh c'est pas vrai !"

J'ai pourtant réussis à affecter une macro à une image issue d'un fichier dans mes documents via une première macro...

Et si, sur le principe du tuto, au lieu de changer de couleur et de bissau, je changais de photo avec une photo bouton non appuyé et une photo bouton appuyé

Merci beaucoup d'avoir pris le temps de m'aider ! Je me servirai de tes boutons et j'irais voir tes autres tuto pour mes prochains fichiers (sur 2016 )

Cordialement

Tipsy

Bonsoir Waard,

Un grand merci pour ton tuto

Bonsoir Waard,

J'ai essayé via ton tuto de créer un bouton de commande standard. En gros j'aimerai qu'il se comporte comme un vrai bouton de commande, si on reste cliqué il reste appuyé et si on sort du bouton il se relâche et ne lance pas la macro.

J'ai appliqué ce code sur un bouton rond, l'animation est un peu aléatoire, je ne sais pas si c'est le code ou selon là ou on appuie ou si c'est le fait de le faire avec une incrustation relâchée bref je testerai cela plus tard. Ce qu'il me manque c'est le côté "le bouton reste appuyé si la souris reste cliqué", penses-tu que c'est faisable ? Le but serait de garder une animation sympa au lancement d'une macro.

Sub Diagramme() 'Bouton type Controle ActiveX Bouton à bascule

Dim sh As Shape
Set sh = Gestion.Shapes("Diagramme")

'Application.ScreenUpdating = False
If sh.ThreeD.BevelTopType <> msoBevelRelaxedInset Then 'si bouton non poussé alors format poussé
    'Format bouton en mode poussé
    sh.ThreeD.BevelTopType = msoBevelRelaxedInset 'effet 3d biseau arrondi convexe
    sh.Fill.ForeColor.RGB = RGB(0, 67, 118) 'Shape en Bleu foncé
    'Range("CELL_LIEE_BOUT_POUSSOIR").Value = "Bouton poussé" 'Option d'index d'une valeur liée au bouton
    Application.ScreenUpdating = True
    'Format bouton en mode dépoussé
    sh.ThreeD.BevelTopType = msoBevelCircle  'effet 3d biseau bordure marqué
    sh.Fill.ForeColor.RGB = RGB(0, 112, 192) 'Shape en Bleu normal
    'Range("CELL_LIEE_BOUT_POUSSOIR").Value = "Bouton non poussé"
    DoEvents 'redonné la main à la prise en main de l'appli 1 micro seconde pour créer l'affichage de l'animation de fin
Application.ScreenUpdating = True 'dernier raffraichissement avant lancement macro ou msgbox
End If
'Application.ScreenUpdating = True
MsgBox "Le bouton a été basculé ;-)", vbInformation, "Test"

End Sub
Rechercher des sujets similaires à "comment creer controle activex ultrapersonnalisable"