Code hexadécimal d'une couleur
Nous allons construire ensemble l'interface en vous montrant un exemple de base d'utilisation des Apis ''GetCursorPos, GetPixel et GetDC''
- Liste des contrôles utilisés :
- Label-étiquette
- TextBox - Zonede Texte
- CommandButton - Bouton
- Frame - Cadre

- Propriétés du UserForm
- Height 213.75
- Width 260.25
- Name Palette
- Rajouter un contrôle TextBox (par ex)
- Height 18
- Width 18
- Backcolor &H00FFFFFF& (blanc)

- Répéter l'opération avec toutes les couleurs de la palette excel, positionner les cases les unes à coté des autres

- Clic droit sur l'UserForm, sélectionner tout, clic droit Grouper
- Choisir le contrôle Cadre, entourer les cases, ce qui va les cacher temporairement, déplacer ce Cadre vers la droite pour apercevoir les cases en dessous

- Sélectionner les cases et déplacez-les dans le Cadre, vous pourrez ensuite positionner le Cadre, les cases suivront car elles font partie du Cadre qui est un conteneur, nous devrions en être là :

- Choisir un TextBox et positionnez-le en haut à droite (par ex) -1 et choisir un Label avec comme Caption Hexadécimal -2
- Choisir un CommandButton et positionnez-le en bas à droite (par ex) -3 avec comme Caption Quitter
- Choisir un second CommandButton et positionnez-le en bas (par ex) -4 avec comme Caption Capture la couleur sous le curseur à chaque appui sur Tab
- L'interface est maintenant terminée

- Le code à mettre sur le userform
'Déclarations
Dim rgbvalue As Long Dim pt As POINTAPI Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, _ ByVal nXPos As Long, ByVal nYPos As Long) As Long Private Declare Function GetDC Lib "user32.dll" (ByVal hWnd As Long) As Long Private Sub CommandButton1_Click() 'pour quitter
Unload Me End Sub Private Sub Iimer() 'déclenché par l'appui sur Tab ou Entrée
Dim stdout GetCursorPos pt rgbvalue = GetPixel(GetDC(stdout), pt.X, pt.Y) UserForm1.BackColor = rgbvalue palette.BackColor = rgbvalue TextBox58 = "#" & Right(Hex(rgbvalue), 2) & Left(Right(Hex(rgbvalue), 4), 2) _ & Left(Hex(rgbvalue), 2) Me.Caption = "Position du curseur : X = " & pt.X & " Y = " & pt.Y End Sub Private Sub CommandButton2_Click() Iimer End Sub Private Sub UserForm_Initialize() 'à l'initialisation de l'userform, donne le focus(active)le bouton
CommandButton2.SetFocus End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'à déclencher éventuellement avant la fermeture
Unload Me End Sub
- Le code à mettre dans un module standard
'Déclarations pour détecter les coordonnées du curseur
Type POINTAPI X As Long Y As Long End Type 'pour lançer par l'interface
Sub demo() UserForm1.Show End Sub
Remarque
Les coordonnées du curseur apparaissent dans l'entête de l'userform. En réduisant la fenêtre d'excel, vous pouvez récupérer les couleurs sur les autres applications ou images ouvertes.
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
