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 :

Check Box qui fait prendre à la cellule situé à côté la valeur 1 ou 0


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Check Box qui fait prendre à la cellule situé à côté la valeur 1 ou 0
    Bonjour à tous,

    Sur mon fichier excel j'ai une check box sur chaque ligne. Je souhaiterais que lorsqu'on clique sur chaque check box la cellule se situant juste à droite sur la même ligne prenne la valeur 1. Puis lorsqu'on la décoche que cette même cellule prenne la valeur 0.

    J'ai essayé ce bout de code mais sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub CheckBox9_Click()
     
    If CheckBox9.Value = True Then
    CheckBox9.LinkedCell.Offset(0, 1).Value = 1
     
    ElseIf CheckBox9.Value = False Then
    CheckBox9.LinkedCell.Offset(0, 1).Value = 0
     
    End If
    End Sub
    Je pense que le pb vient du fait que je ne sélectionne pas correctement la cellule qui se trouve juste à droite de la cellule contenant la checkbox mais je ne parviens pas à le résoudre. Quelqu'un pourrait-il me renseigner ??

    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CheckBox9_Click()
     
    Range(CheckBox9.LinkedCell).Offset(, 1) = Abs(CheckBox9)
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse rapide mercatog.

    Mais j'ai un problème quand je lance la macro, il s'affiche
    'can't execute code in break mode'
    ou
    run-time error '424'

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le code de Mercatog que je salue au passage fonctionne parfaitement.
    Au delà de ton problème, je me pose des questions quant à ta demande.
    La propriété LinkedCel d'un contrôle ActiveX sert à écrire dans la cellule définie dans cette propriété la valeur du contrôle. Plutôt que d'écrire une colonne à droite de la cellule liée la valeur du contrôle, ne serait-ce pas plus simple de modifier l'adresse de la cellule liée et conserver sa valeur initiale VRAI/FAUX à la place de 1 et 0 ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci Philippe,

    En fait j'avais besoin d'une nouvelle colonne avec des 0 et des 1 car cherchant le produit de plusieurs cellules il était plus simple pour moi de multiplier directement par 1 ou 0. Ca fonctionne maintenant avec le code de mercatog, merci à toi

    J'en profite pour poser une 2ème question sans créer un 2ème thread : je cherche à faire en sorte que quand on coche une check-box la ligne (pas la ligne entière, seulement les colonnes de mon tableau) sur laquelle se trouve la checkbox se mette en bleu. Le problème est que je n'arrive pas à sélectionner la ligne sur laquelle se trouve la check-box...

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En fait j'avais besoin d'une nouvelle colonne avec des 0 et des 1 car cherchant le produit de plusieurs cellules il était plus simple pour moi de multiplier directement par 1 ou 0. Ca fonctionne maintenant avec le code de mercatog, merci à toi
    Juste pour info, VRAI et FAUX se multiplient parfaitement avec Excel (VRAI = 1 et FAUX = 0)
    Pour ta deuxième question, tu dois connaître la ligne puisque j'imagine que c'est la ligne où se trouve la cellule liée et le nombre de colonnes doit être connu par l'objet Range de ton tableau..
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [XL-MAC 2011] Check-box qui active une mise en forme sur la ligne la contenant
    Par FlorentP dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/09/2014, 23h43
  2. [XL-2003] Adapter Formule qui fait référence à une cellule sur la même ligne
    Par toukii dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/06/2009, 00h25
  3. Bug ie7 ? Code html pur qui fait prendre 100% de cpu à IE7
    Par Rakken dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 06/01/2009, 10h53
  4. [JTable] Check Box dans une cellule
    Par kkajout dans le forum Composants
    Réponses: 4
    Dernier message: 19/05/2008, 10h55
  5. Réponses: 10
    Dernier message: 16/12/2007, 08h28

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