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 :

Probleme Checkbox pour colorer une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Points : 0
    Points
    0
    Par défaut Probleme Checkbox pour colorer une cellule
    Je suis débutant en VBA et je voudrais que quand je coche une checkbox située dans une case avec une formule, la case devienne verte.
    Malheureusement j’ai testé plusieurs solutions mais à chaque fois la valeur donnée dans la case est remplacée par VRAI ou FAUX ( lorsque je lie la checkbox avec ma cellule pour faire une mise en forme conditionnelle ).

    je met un fichier assez simple, c'est expliqué dedans, merci beaucoup !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonsoir Hacksion, bonsoir le forum,

    Le code ci-dessous est valable pour une seule ou quelques cellules. Si tu dois le faire sur plusieurs lignes, je te conseille de taper x dans la colonne E et de modifier F à l'aide de l'événementielle Change. Ça sera mois esthétique mais bien plus efficace...

    Le code adapté à ton exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Caseàcocher2_Cliquer()
    With Worksheets("Feuil1").Shapes.Range(Array("Check Box 2"))
        .Select
        Worksheets("Feuil1").Range("F9").Interior.ColorIndex = IIf(Selection.Value = 1, 4, xlNone)
    End With
    Range("F9").Select
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour à tous,
    Citation Envoyé par Hacksion Voir le message
    quand je coche une checkbox située dans une case avec une formule, la case devienne verte.
    Si tu n'as qu'une case à cocher je te propose ceci adapté à ton exemple et à associer à ton objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Caseàcocher2_Clic()
        With Range(ActiveSheet.Shapes("Case à cocher 2").TopLeftCell.Address)
            If ActiveSheet.Shapes("Case à cocher 2").ControlFormat.Value = 1 Then
                .Interior.Color = 5296274
            Else
                .Interior.Color = xlNone
            End If
        End With
    End Sub
    Si tu as plusieurs cases à cocher sur ta feuille ce code les traitera toutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub colore_cases()
    Dim shp As Shape
        With ActiveSheet
            For Each shp In .Shapes
                If shp.Type = 8 Then
                    If shp.ControlFormat.Value = 1 Then
                        .Range(shp.TopLeftCell.Address).Interior.Color = 5296274
                    Else
                        .Range(shp.TopLeftCell.Address).Interior.Color = xlNone
                    End If
                End If
            Next shp
        End With
    End Sub

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    Bonjour,

    Merci beaucoup pour vos réponses mais malheureusement aucune ne fonctionne, soit il ne se passe rien, soit si j'execute la Macro la case se colorie en vert mais ne redevient pas blanche quand je décoche, ou alors il y a toujours "VRAI" ou "FAUX" qui apparait a la place du chiffre

  5. #5
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Re,

    As-tu pensé à attribuer la macro à la case à cocher ou à l'adapter si le nom est différent ?!...
    En pièce jointe ton fichier fonctionnel.
    Fichiers attachés Fichiers attachés
    À plus,

    Thauthème

    Je suis Charlie

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    AAAh trop bien tu es un génie !! c'est exactement ce que je voulais merci !

    Parcontre effectivement je n'avais pas trop touché je suis vraiment débutant je ne sais pas trop comment activer la formule VBA.
    Et d'ailleurs je vois que tu as mis une ligne "option explicit", à quoi ça sert?

    Encore merci !!

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Points : 518
    Points
    518
    Par défaut
    Bonjour à vous,

    Option Explicit est tout sauf une Option si l'on veut maîtriser son code, cela te permet notamment d'utiliser (dans mon cas) des variables en Public.

    Dans l'idée où tu aies 3 procédures utilisant chacune un tableau différent, tu peux faire de la sorte :

    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
    Option Explicit
    Dim t as ListObjects
     
    Private Sub PC1()
         Set t = t_data
         'Code...
    End Sub
     
    Private Sub PC2()
        Set t = t_budget
        'Code...
    End Sub
     
    Private Sub PC3()
       Set t = t_client
       'Code...
    End Sub
    Du moins c'est l'utilisation que j'en fais et cela m'évite de dimensionner mes variables en début de chaque procédure, seules celles spécifiques y sont inscrites. Toutes celles qui sont communes à plusieurs procédures sont définies sous Option Explicit. J'espère du moins en avoir saisi la bonne utilité, mais si je ne partage pas ma vision je ne pourrai savoir si j'ai bien compris son utilité

  8. #8
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Cordialement,
    Franck

  9. #9
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Re,

    @Révèr Option Explicit oblige à déclarer toutes les variables !... Quelles soient Public, Private ou Dim si tu codes une ligne avec une variable :
    sans l'avoir déclarée, au lancement de la macro, tu auras systématiquement le message "Erreur de compilation : variable non définie". Ce qui d'ailleurs est un peu nul car c'est plutôt "non déclarée" qu'il aurait fallu écrire...
    À plus,

    Thauthème

    Je suis Charlie

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Points : 518
    Points
    518
    Par défaut
    Et sans Option Explicit, que se passerait-il ?

  11. #11
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Re,

    Rien, I serait définie et le code continuerait. La déclaration des variables n'est pas obligatoire mais elle permet d'éviter tellement de bugs que je la recommande tout le temps. Clique sur le lien indiqué par Pijaku...
    À plus,

    Thauthème

    Je suis Charlie

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Points : 518
    Points
    518
    Par défaut
    Pour en revenir à l'exemple joint dans le sujet de pijaku,

    Option Explicit aurait pointé l'erreur sur la ligne 20 en précisant "Variable Non Définie" (en relation avec x1ShiftUp) ?
    Puisqu'il s'agirait-là d'une variable étant utilisée sans avoir été déclarée ?

  13. #13
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Re,

    Heu désolé je n'ai pas tout lu...
    À plus,

    Thauthème

    Je suis Charlie

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Points : 518
    Points
    518
    Par défaut
    Oh, autant pour moi.

    Pour résumer, la personne avait écrit "x1ShiftUp" au lieu de "xlShiftUp". L'erreur apparaissait donc sur la ligne de x1ShiftUp.

Discussions similaires

  1. [XL-2010] Macro pour colorer une cellule en fonction d'autres
    Par Fennec51 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/08/2014, 08h17
  2. [phpToPDF] Ajout de balises phpToPDF pour colorer une cellule
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 30/08/2010, 10h37
  3. [XL-2007] Probleme pour selectionner une cellule
    Par pachi44 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 24/06/2010, 14h16
  4. Problème pour verrouiller une cellule
    Par aJavaDeveloper dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/07/2007, 10h02
  5. [FLASH 8] Probleme de pour redimensionner une image
    Par julien.63 dans le forum Flash
    Réponses: 2
    Dernier message: 22/11/2006, 17h49

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