Problème avec colorbox
Bonjour,
J'essaye d’utiliser la fonction ColorBox pour coloriser mes cellules au clic dans l'une d'entr'elles.
(c'est en fait ce qui est expliqué ici : https://www.excel-pratique.com/fr/fonctions-complementaires/colorbox-excel)
Mais lorsque je clique sur une cellule , j'ai l'erreur VBA suivante : "Erreur de compilation: Sub ou Function non définie"
(bien évidemment, le pack de macro complémentaires est installé).
Faut il activer quelque quelque chose, .. définir une fonction .. ?
Merci pour votre aide
Bonsoir Guido76
Et comment voulez-vous que l'on puisse vous aider
Aucun fichier, aucun code...
A+
Bonjour,
Mes excuses, je suis un peu à la traine pour répondre, mais on ne fait pas toujours ce que l'on veut ..
Sinon, .. ben oui, pas de code, il est en clair dans la page sur ce site et dont j'ai donné le lien : https://www.excel-pratique.com/fr/fonctions-complementaires/colorbox-excel
je veux bien le mettre ci dessous (il y a deux versions) et je rappelle que le pack de macro complémentaires est bien installé :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then 'Si colonne C
Target.Interior.Color = colorBox
End If
End Sub ------------------------------------------ Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then 'Si colonne C
couleur = colorBox(Target.Interior.Color)
If couleur > -1 Then 'Si l'utilisateur a choisi une couleur
Target.Interior.Color = couleur
End If
End If
End SubBonjour Guido76
Et si dans la fenêtre d'exécution tu saisi
Debug.Print ColorBoxQu'est-ce que cela donne ?
A+
Bonjour,
Je m'y prends peut être mal, mais ca n'affiche rien.
Mais je viens de me rendre compte que l'erreur apparaît avec le second code, sur la ligne "couleur = colorBox(Target.Interior.Color)" avec le mot colorbox surligné.
Avec le premier code, au clic sur une cellule, la cellule se colore en noir, et je n'ai pas l'ouverture de l'userform.
Le code "Debug.Print ColorBox", je l'insère à n'importe quel moment, ou juste après l'éxécuion de la macro colorbox ?
Merci !
Bonsoir,
Je pense donc quel l'Add-in est mal installé, il faudrait tester d'autres fonctions 🤔
+A
Bonjour,
J'ai testé les autres fonctions qui semblaient toutes fonctionner ..
Du coup, je suis revenu sur le code utilisé pour cette fonction Colorbox, et j'ai chercher la raison de l'erreur sur le site de Microsoft.
Et j'ai fini par trouver :
Il faut aller dans le menu Outil de la page VBA , ouvrir la fenêtre de Référence, et dans la liste proposée, cocher le Pack de fonctions_XLP.
Et là, ca marche.
Seul bémol, l'userform de choix couleur apparaît sur le second écran (quand on a deux écrans ...), et il n'est pas possible de modifier la position car on n'a pas accès au code du pack. (il faudrait mettre la propriété StartUpPosition de l'userform à 'Windows Default' et pas 'Center Owner' ou 'Center Screen')
Bonsoir Guido76
Tout ce temps perdu pour ça, non mais sérieux
Il est indiqué ici
https://www.excel-pratique.com/fr/fonctions-complementaires/
si vous rencontrez des difficultés pour utiliser les fonctions VBA, consultez ce guide d'installation.
Et dans le guide, il est bien indiqué : (si vous utilisez une version d'Excel plus ancienne, cliquez ici).
Ce qui vous aurait mené à ca
https://www.excel-pratique.com/fr/fonctions-complementaires/installation-macros-complementaires
Mais pourquoi faire des guides d'installation... hein
Bonjour,
Ouais .. sauf que :
1) j'étais bien allé dans "Fichier" > "Options" > "Compléments" pour ouvrir la fenêtre des compléments et activer le complément, vu que je suis pas 'neuneu' et que ca fait à peine plus de 30 ans que j'utilise Excel. D'ailleurs la plupart des fonctions du pack fonctionnaient sans problème.
2) qu'il a pourtant fallu que je réactive une seconde fois dans la fenêtre VBA comme je l'ai indiqué, et que, du coup, je n'y aurais pas pensé si je n'avais pas relu l'aide de Microsoft
3) que ma version d'Office n'est pas ancienne, vu que c'est une version 2019. Je sais que le temps passe vite, mais bon ...
cordialement,
Bonjour,
OK. Je vais corriger le profil. On n'y pense pas toujours.
Et je m'excuse aussi d'avoir été peut être un peu "vif" dans ma réponse hier.
En fait, j'aurais du être plus explicite dans mon premier message en indiquant bien que j'étais vraiment certain d'avoir bien installé le pack, y compris en l'activant dans les options. C'est quand même étrange qu'il a fallu l'activer une seconde fois dans la fenêtre VBA ...
Pour la position de l'userform, comment pourrait on le faire apparaître dans l'écran principal et pas sur le second écran ? Je ne sais pas s'il y a moyen sans accéder à ses propriétés.
Bonjour Guido76
Pour la position de l'USF, voici ce que j'utilise
Private Sub UserForm_Initialize()
' Centrer l'USF dans la fenêtre principale
With Me
.Left = (Application.Left + Application.Width) - ((Application.Width + .Width) / 2)
.Top = (Application.Top + Application.Height) - ((Application.Height + .Height) / 2)
End With
End SubA+
Bonjour,
Oui, mais ce code, vous le mettez où ? Ca fonctionne pour toutes les macros utilisant un userform, par exemple toutes les macros du classeur Personnal ?
Auquel cas, de mémoire, .. il me semblait qu'il faut mettre ce code pour un lancement au démarrage d'Excel en l'appelant Private Sub Workbook_Open() dans ThisWorkbook, ou Private Sub Auto_Open() dans un ensemble d'autres macros. Mais après essai, ca ne marche pas ...
Re,
La première ligne de code est quand même parlante, non
Private Sub UserForm_Initialize()Vous avez demandé
Pour la position de l'userform, comment pourrait on le faire apparaître dans l'écran principal et pas sur le second écran ? Je ne sais pas s'il y a moyen sans accéder à ses propriétés.
Donc je vous ai répondu
