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 :

Boucler sur une série de CheckBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Par défaut Boucler sur une série de CheckBox
    Bonjour à tous,

    Avant toutes choses je vous informes que je suis novice, je n'ai que de vagues notions de POO et je découvre le VB c'est pourquoi je suis dans l'obligation de solliciter votre aide bienveillante

    Voilà j'ai réalisé un formulaire de saisie sur lequel les utilisateurs doivent répondre à une série de question, en cochant des CheckBox.

    J'ai essayé de faire une fonction

    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
    Function cko(l As Byte, m As Byte, n As Byte, checkbox As Boolean)
     
    ' Verif si cases cochées
        If Control.Item("checkbox" & l).Value = "" And Control.Item("checkbox" & m).Value = "" Then
        MsgBox "Veuillez remplir les cases pour indiquer votre couleur préférée"
    'un choix à préciser dans une TextBox
        ElseIf Control.Item("checkbox" & m).Value = True And Control.Item("textbox" & n).Value = "" Then
        MsgBox "Veuillez préciser votre choix " 
    ' Si plusieurs cases sont cochées
        ElseIf Control.Item("CheckBox" & l).Value = True And Control.Item("CheckBox" & m).Value = True Then
        MsgBox "Veuillez cocher une seule case"
    'Si orange renvoie la valeur O dans excel
        ElseIf Control.Item("CheckBox" & l).Value = True Then
        cko = "O"
    'Si bleu renvoie la valeur B dans excel
        ElseIf Control.Item("CheckBox" & m).Value = True Then
        cko = "B"
        End If
     
    End Function
    Que j'utilise de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton1_Click()
     
    'Les valeurs 1,2 et 5 étant les numéros des CheckBox et de la TextBox (pour la précision)
        Range("f65536").End(xlUp).Offset(1, 0).Value = cko(1, 2, 5)
     
    End Sub
    J'ai une multitude de question, j'ai donc abandonné l'utilisation de Frame, en effet ces derniers alourdissaient considérablement mon document.

    Voilà comme vous pouvez vous en douter, suite à la lecture de mon "code", ça ne marche pas je suis actuellement dans une impasse et je compte sur vous pour m'aider

    Merci d'avance

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    essaye ça!

    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
     
    Function cko(l As Byte, m As Byte, n As Byte) as string
     
    ' Verif si cases cochées
    If not Control.Item("checkbox" & l) And not Control.Item("checkbox" & m) Then
    MsgBox "Veuillez remplir les cases pour indiquer votre couleur préférée"
    'un choix à préciser dans une TextBox
    ElseIf Control.Item("checkbox" & m) And Control.Item("textbox" & n).Value = "" Then
    MsgBox "Veuillez préciser votre choix "
    ' Si plusieurs cases sont cochées
    ElseIf Control.Item("CheckBox" & l) And Control.Item("CheckBox" & m) Then
    MsgBox "Veuillez cocher une seule case"
    'Si orange renvoie la valeur O dans excel
    ElseIf Control.Item("CheckBox" & l) Then
    cko = "O"
    'Si bleu renvoie la valeur B dans excel
    ElseIf Control.Item("CheckBox" & m) Then
    cko = "B"
    End If
     
    End Function

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Par défaut
    Citation Envoyé par mayekeul Voir le message
    bonjour,
    essaye ça!
    Tout d'abord merci pour ton aide

    J'ai donc essayé mais ça ne marche pas, l'erreur indiquée est :

    Argument non facultatif
    Sur la ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("f65536").End(xlUp).Offset(1, 0).Value = cko(1, 2, 5) 
    Je pense que je n'ai pas déclaré ou appelé la fonction comme il conviendrait et je ne vois pas comment faire.
    J'ai beau lire des tutoriaux je ne trouves pas de solutions.
    Je comprends le code mais quand il s'agit de créer mon propre code, associé à des contraintes et des besoins particuliers, je m'y perd

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    j'ai fait un edit du code que j'ai posté avant que tu ne réponde

    c'est bien celui là que tu as pris?

  5. #5
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Par défaut
    Yep non désolé, par contre ce coup ci ça m'indique :

    Objet requis
    Et le focus du débogage est sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Control.Item("checkbox" & l) And Not Control.Item("checkbox" & m) Then
    En tous cas c'est cool de m'aider

  6. #6
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    de rien,

    est-tu sur que les deux item existe bel et bien.

    que tu a donc bien une checkbox l et m?

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/09/2007, 15h31
  2. boucler sur une requete & affichage resultat
    Par ricoree78 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 24/08/2007, 15h44
  3. Réponses: 7
    Dernier message: 11/06/2007, 14h11
  4. [VBA-E] boucler sur une colonne
    Par ricoree78 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 14/02/2007, 20h04
  5. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/01/2006, 14h19

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