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 :

Problème checkbox et cellule boolean


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut Problème checkbox et cellule boolean
    Bonjour à tous,

    Alors voilà mon problème: j'ai une checkbox, qui en prend la valeur d'une cellule contenant soit 0 soit 1 (servant de boolean). Le problème c'est que j'obtiens l'erreur
    "La métode Range de l'objet '_Worksheet' a échoué" lorsque j'ai 1 dans la colonne B et 0 dans la colonne C (sur la même ligne). Dans tous les autres cas, cela fonctionne. Je ne vois absolument pas comment résoudre l'erreur.

    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
    Private Sub L1_Click()
        Application.EnableEvents = False
        With Sheets(1).Range("B" & Module1.ligne)
            If Sheets(1).Range("C" & Module1.ligne).Value = False Then
                If .Value = False Then
                    .Value = 1
                Else
                    .Value = 0
                End If
            Else
                Me.L1.Value = 1
            End If
            Me.L1.Value = .Value
        End With
        Application.EnableEvents = True
    End Sub
    Et voilà à quoi ressemble mon fichier (il s'agit d'un fichier de test) :
    Nom : Capture.JPG
Affichages : 432
Taille : 30,3 Ko
    Si quelqu'un sait comment résoudre l'erreur, merci d'avance!

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 713
    Par défaut
    Bonjour,

    En VBA, True vaut -1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
        Debug.Print 1 * False
        Debug.Print 1 * True
    End Sub

  3. #3
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    Je ne savais, j'essaye donc avec -1.

    Merci beaucoup =)

    [Edit]
    J'ai exactement la même erreur avec -1, ça ne change strictement rien
    [/edit]

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 713
    Par défaut
    Quelle est la ligne de code sur laquelle le problème survient?

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Et qu'est-ce que L1 ? un Checkbox ?
    si oui, liée à des cellules ?

    Ça prendrait peut-être un peu plus d'explications...

  6. #6
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    En fait le problème vient du fait qu'en modifiant la valeur, cela créé une récurrence, causant une boucle infinie, et donc un plantage (au bout d'un moment) à chaque fois que l'on fait appel à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets(1).Range("B"&Module1.ligne)
    En gros, au bout d'un certain nombre de boucles, le programme plante sur une nouvelle récurrence.

    J'aimerai donc trouver un moyen d'empêcher l'appel à L1_change() et L1_Click (L1 étant ma checkBox). Chose que Application.enableEvents=False devrait empêche, mais ne fait aucune différence ici.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Tu pourrais utiliser une variable Booléenne Public
    Tu la mets à True avant de faire L1= .Value et la remet à False après
    Dans ton événement Click ou Change, tu vérifies l'état de cette variable.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    BOnjour,

    J'ai pas tout bien compris, mais comme tu travailles avec des Vrai/Faux et des chiffres 0/1, je pense que le 1 cause problème
    0 = Faux
    -1 = Vrai
    1 <> Vrai <> Faux

    EDIT: J'ai été trop lent...

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

Discussions similaires

  1. Problème selectOneItem avec un boolean
    Par toutoune60 dans le forum JSF
    Réponses: 28
    Dernier message: 05/11/2007, 22h23
  2. Problème alignement dans cellule sous IE
    Par mauriceuh dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/02/2007, 13h08
  3. [VBA-E] Problème d'offset cellule
    Par GI_GI dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/01/2007, 10h47
  4. [VBA - Excel] Problème de deux cellules sur l'evenement OnChange
    Par champmart dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/01/2007, 17h06
  5. [VBA] problème choix de cellule dans feuille excel
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/02/2006, 10h48

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