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 :

Activation checkbox à partir d'un chiffre


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut Activation checkbox à partir d'un chiffre
    Bonjour, j'aimerais savoir si c'est possible d'activer automatiquement un checkbox à partir d'un chiffre. En fait, un chiffre de 1 à 4 chiffres pour ouvert, coché, barré, et coché barré.

    Donc ça ressemblerais à quelque chose comme ca, je ne sais juste pas dans quelle fonction mettre ce code pour qu'il modifie la checkbox automatiquement lorsqu'il y a un chiffre.

    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
    Sheets("Feuil2").Select
    '*** Ouvert ***'
    If Sheets("Feuil2").Cells(10, 1).Value = 1 Then
    Sheets("Feuil1").CheckBox5.Enabled = True
    Sheets("Feuil1").CheckBox5.Value = False
    End If
    '*** Coché ***'
    If Sheets("Feuil2").Cells(10, 1).Value = 2 Then
    Sheets("Feuil1").CheckBox5.Enabled = True
    Sheets("Feuil1").CheckBox5.Value = True
    End If
    '*** Barré ***'
    If Sheets("Feuil2").Cells(10, 1).Value = 3 Then
    Sheets("Feuil1").CheckBox5.Enabled = False
    Sheets("Feuil1").CheckBox5.Value = False
    End If
    '*** Coché barré ***'
    If Sheets("Feuil2").Cells(10, 1).Value = 4 Then
    Sheets("Feuil1").CheckBox5.Enable = False
    Sheets("Feuil1").CheckBox5.Value = True
    End If
    Merci pour l'aide.

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonjour (voir Bonne nuit),

    Pour faire simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    valChk=[Feuil2!A10]
    CheckBox5.Enabled=cbool(valChk-1)
    CheckBox5.Value=cbool(valChk-3)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut
    Merci pour ta réponse, mais j'ajoute ce bout de code où?

    dans Private Sub CheckBox5_Click() ?

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Désolé,
    je n'avais copié que le principe - en fait dans ce cas précis, il faudrait utiliser le module de code de la feuille.
    Le select case est indiqué dans le cas d'autre traitement similaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
        Select Case Target.Address
            Case "$A$10"
                CheckBox5.Enabled = CBool(Target.Value - 1)
                CheckBox5.Value = CBool(Target.Value - 3)
        End Select
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut
    J'ai créer un module et j'ai copier ce code mais d'après moi le lien ne se fait pas correctement...

    Voici un plan de ce que je veux faire je sais pas si ça peut t'aider à comprendre pcq moi je suis pas sûr de ce que je fais en VBA.

    merci!
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Pas dans un nouveau module -
    dans le module de la feuille identifiée «Feuil5(Feuil1)»

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut
    Salut,

    J'ai mis ton code dans dans le module de la Feuil5(Feuil1)
    mais toujours rien...

    Toi ça fonctionne?

    Les chiffres se trouvent sur la feuille 2 alors que les checkbox se trouve sur la feuille 1, serait-ce le lien entre les deux qui n'est pas correct?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut
    Merci! avec ton bout de code j'ai réussi a rafistoler mon programme mais quelqu'un pourrais me dire svp quelle est la l'utilité du -3 et du -1 car selon ma légende (image en haut), les crochets et les gris ne correspondent pas au numéros.

    CBool(Target.Value - 1) ?
    CBool(Target.Value - 3) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
        Select Case Target.Address
            Case "$A$10"
                Sheets("Feuil1").CheckBox5.Enabled = CBool(Target.Value - 1)
                Sheets("Feuil1").CheckBox5.Value = CBool(Target.Value - 3)
        End Select
    End Sub
    merci...

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    cbool convertit toute valeur numérique en valeur booléenne.
    toute valeur nulle est ainsi convertie en False et toute valeur <> 0 est convertie en True.

    Soit RE le résultat de la différence entre ta valeur et 1 et RC celui de la différence entre ta valeur et 3

    Selon, donc, la valeur de ton paramètre Target, sa propriété Enabled sera True (si RE <> 0) ou False (si RE = 0) et ta checkbox sera cochée (si RC <> 0) ou non (si RC = 0)

Discussions similaires

  1. Réponses: 15
    Dernier message: 03/04/2007, 12h51
  2. avoir le mois en lettre a partir d'un chiffre
    Par lazzeroni dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/01/2007, 14h07
  3. controler checkBox à partir d'un autre classeur
    Par Echizen1 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/07/2006, 09h26
  4. Réponses: 1
    Dernier message: 09/06/2006, 11h00
  5. [Oracle] Incrementation à partir de 6 chiffres???
    Par wormseric dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/04/2006, 15h13

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