Autres Colorer une cellule en un clic

  • Initiateur de la discussion Initiateur de la discussion baguihome
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

baguihome

XLDnaute Nouveau
Bonjour à tous,

J'ai crée un fichier excel dans lequel je souhaiterai rendre une colonne interactive : pour chacune des cellules de cette colonne, un clic = colore la cellule en rouge ; un deuxième clic dans cette même cellule = colore en vert (passe du rouge au vert) ; un troisième clic = retour à la couleur initiale de la cellule (passe du vert à la couleur initiale de la cellule).
J'ai trouvé un code qui fonctionne assez bien (je le mets en fin de post). Reste quelques petits problèmes : le 3ème clic colore la cellule en blanc alors que les lignes de mon fichier sont alternativement blanches et grises. C'est pour ça que je souhaiterais pouvoir ramener la cellule à sa couleur d'origine au 3ème clic. Deuxième petit problème, quand j'essaie de protéger le reste du fichier (toutes les cellules sauf celle de la colonne colorable) la macro ne fonctionne plus. 3ème problème, le code que j'ai trouvé s'applique sur 2 colonnes, quelles modifications apporter au code pour qu'il ne concerne plus que la colonne D. Enfin, le code suivant fonctionne avec un double clic, je souhaiterai qu'il fonctionne avec un clic gauche.

Est-ce faisable de faire ce que je souhaite ?

Merci d'avance pour votre aide et désolé pour mon ignorance…🙄☺️

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim couleurs()
If Not Intersect(Target, Range("D:E")) Is Nothing Then
couleurs = Array(RGB(255, 0, 0), RGB(13, 241, 105), RGB(255, 255, 255))
On Error GoTo color
Target.Interior.color = couleurs(Application.WorksheetFunction.Match(Target.Interior.color, couleurs, 0) Mod 3)
Cancel = True
End If
Exit Sub
color:
Target.Interior.color = couleurs(0)
Cancel = True
End Sub
 
bonjour, il faut ajouter "ime" dans les lignes "protect" et "unprotect"
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

     Dim Couleurs(): Couleurs = Array(-1, RGB(255, 0, 0), RGB(13, 241, 105))

     If Intersect(Target, Range("D:E")) Is Nothing Then Exit Sub

     With Target
          Me.Unprotect "ime"   'avec mot de passe
          ic = .Interior.Color
           .....
          Cancel = True
          Me.Protect "ime" 'avec mot de passe
     End With

End Sub
 
Bonjour, c'est encore moi... désolé... 😅

Pour un autre document excel j'aimerai pouvoir colorer des cellules de la même façon que dans mes postes précédents, mais en plus j'aimerai verrouiller les colonnes A, B et C et seulement celles-ci, avec le code "ime". Ci-après le code que j'ai réussi à rentrer pour colorer les colonnes D, E et F. Mais il ne fait pas qu'elles soient protégées car je souhaiterai pouvoir y ajouter du texte.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim couleurs()
If Not Intersect(Target, Range("D:F")) Is Nothing Then
couleurs = Array(RGB(255, 0, 0), RGB(0, 176, 240), RGB(146, 208, 80), RGB(255, 255, 255))
On Error GoTo color
Target.Interior.color = couleurs(Application.WorksheetFunction.Match(Target.Interior.color, couleurs, 0) Mod 4)
Cancel = True
End If
Exit Sub
color:
Target.Interior.color = couleurs(0)
Cancel = True
End Sub

Merci d'avance...!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
213
Retour