IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA Changement par clic successif de couleur de cellules


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut VBA Changement par clic successif de couleur de cellules
    Bonjour,
    je voudrais qu'une cellule change de couleur lorsque je clique dessus. Comment faire?
    J'ai vu une réponse qui correspondait dans une précédente question. Je voudrais maintenant établir un compteur me permettant de changer la couleur en fonction du nombre de fois que je clique sur une case.
    (si je clique une fois la case devient jaune deux fois verte trois fois rouge par exemple)

    Détails supplémentaires

    en fait je souhait le faire avec une succession de clique mais je n'ai trouvé que la fonction double clicks pour le moment
    voilà le code qui marche pour un seul double clique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    '
    Static lastCell As Range
    If Not lastCell Is Nothing Then
    'lastCell.Interior.ColorIndex = xlNone
    End If
    If lastCell Is Target Then
    End If
    If Not Intersect(Target, Range("H5:BO45")) Is Nothing Then
    With Target.Interior
    .Pattern = xlSolid
    .ColorIndex = 6
    End With
    Set lastCell = Target
    Else
    Exit Sub
    End If
    End Sub
    Merci de votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Pourquoi ne pas utiliser beforeclick (et non pas double), tester la couleur présente et la modifier selon le résultat de ce test ?

    Maintenant je ne suis pas sûr qu'Excel puisse considèrer le deuxième clic d'un double clic comme un clic simple... à tester.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    Saurais tu me dire comment utiliser l’événement beforeclic car il n’y a pas moyen de le trouver dans les événements Worksheet.

    Y a-t-il moyen de créer un événement comme en VB à moins qu’il ne faille modifier une option ??

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Voilà ce que c'est de répondre à l'arrache sans Excel sous la main
    En effet il n'y a pas de BeforeClick, j'ai dû confondre avec des méthodes VB ou Delphi au nom proche...
    Désolé pour ce faux espoir

    Du coup je pense que c'est mal barré ton affaire, paulonouch... encore qu'il ne faut jamais sous-estimer l'ingéniosité de certains membres de ce forum

  5. #5
    Membre habitué
    Homme Profil pro
    R&D laboratoire
    Inscrit en
    Janvier 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D laboratoire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 83
    Points : 157
    Points
    157
    Par défaut changement de couleur
    J'ai déjà rencontré le problème d'incrémenter des couleurs mais le changement de couleurs était lié à un compteur. Dans ce cas la palette choisie est d'abord entrée dans une variable tableau (palette de 7 couleurs) avec une condition pour revenir à zéro quand le compteur dépassait 7; je ne vois pas comment le relier à des click sur une cellule. Quelqu'un d'autre aura peut-être l'autre partie de la solution?

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    c'est ce que je voulais te signaler.. il n'y a que doubleclick
    à la limite je suis également interéssé par une solution me permettant de le faire par une succession de double clics.
    un double clic ma cellule passe à jaune, un second à bleu et un troisième à vert par exemple.

  7. #7
    Membre habitué
    Homme Profil pro
    R&D laboratoire
    Inscrit en
    Janvier 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D laboratoire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 83
    Points : 157
    Points
    157
    Par défaut
    Et un petit userform s'affichant en modeless proposant quelques couleurs (1 bouton par couleur) appliquées sur la cellule active?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Avec doubleclick, c'est faisable en Excel 2007 ou avec une version précédente si pas plus de 3 couleurs car on doit utiliser les MFC.

  9. #9
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    La Mise sous forme conditionnelle ne me permet pas de réaliser cette opération à moins que je me trompe.
    Pour ce qui est d'un bouton contenant un certain nombre de couleur c'est intéressant mais pas applicable à mon cas, l'utilisatur veut un truc très simple.
    Si quelqu'un a une autre idée je suis toujours preneur!

    Merci

  10. #10
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour tlm,

    Avant de me lancer dans le mur avec une proposition, deux petites questions :
    - cela ne concerne que la plage H5:BO45 ?
    - si je fais un clic maintenant, puis je fais deux clics dans 2 secondes,
    il faut considérer 2 clics ou 3 clics ?
    - jusqu'à combien de clic faut-il aller ?

    arf...je ne sais plus compter, ça fait 3 questions

  11. #11
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    voici une implémentation du double clic.
    C'est paramétrable en fonction d'une zone nommée ColorZ

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Private cellColl As Collection
    ' collection qui va gérer le nombre de double-clics par cellule
    Private Sub Worksheet_Activate()
        Set cellColl = New Collection
        Debug.Print "init"
    End Sub
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim clics As Integer
     
    On Error GoTo NiceError
    ' on récupère le nombre de double clics pour la cellule en cours
    ' s'il n'y en a aucun ça lève une erreur (n°5) et on l'ajoute à la collection
    ' si pas d'erreur on ajoute 1 aux nombres de double clic et on colore en fonction
    ' de la plage "témoin" Colorz
    clics = (cellColl(Target.AddressLocal(False, False))) Mod (Range("ColorZ").Rows.Count)
    If clics = 0 Then
        clics = 1
    Else
        clics = clics + 1
    End If
    cellColl.Remove (Target.AddressLocal(False, False))
    cellColl.add Item:=clics, key:=Target.AddressLocal(False, False)
    Target.Interior.Color = Range("colorz").Cells(clics, 1).Interior.Color
     
    NiceExit:
    ' Cancel = true c'est pour éviter de passer en mode édition
    Cancel = True
    Exit Sub
     
    NiceError:
    Select Case Err.Number
        Case 5
            cellColl.add Item:=2, key:=Target.AddressLocal(False, False)
            Target.Interior.Color = Range("colorz").Cells(2, 1).Interior.Color
     
        Case Else
            MsgBox Err.Number & vbCrLf & Err.Description, vbOKOnly
    End Select
    Err.Clear
    GoTo NiceExit
     
    End Sub
     
    Private Sub Worksheet_Deactivate()
        Set cellColl = Nothing
        Debug.Print "Deinit"
    End Sub
    et voici le fichier
    Fichiers attachés Fichiers attachés

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Je n'ai pas écrit que ça se faisait par les MFC. J'ai dit qu'on devrait y recourir mais, bien entendu, il y a autre chose.
    Fichiers attachés Fichiers attachés

  13. #13
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ca me semble parfait comme solution cafeine.
    Merci pour votre aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] VBA - Desactiver la selection automatique par clic souris
    Par Karshick dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/09/2014, 16h37
  2. [XL-2010] Faire changer de couleur 2 cellules en mme temps par clic
    Par stas13 dans le forum Excel
    Réponses: 4
    Dernier message: 06/05/2013, 13h16
  3. Réponses: 3
    Dernier message: 30/01/2012, 14h42
  4. couleur d'une case modifiable par clic
    Par ChTiRiBi dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/07/2009, 15h42
  5. [VBA-Excel] modification automatique de la couleur des cellules
    Par ricachu dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/06/2008, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo