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 avec CheckBox [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut Problème avec CheckBox
    Bonjour,

    Je souhaiterais savoir si il et possible grâce a un formulaire qui contient une textbox et une CheckBox de remplir un tableau avec du texte (colonne P) par le combobox et un chiffre 1 si cocher (colonne Q), de plus il faudrait que cela mette un 0 dans les autre ligne de la colonne Q du tableau ou il y a une donner dans la colonne P. C'est pas trop évident a explique je peux préparer un exemple si il faut...

    Je coince au niveau de la CheckBox. (Le bouton de lancement de l'userform et sur la feuil1 et les données vont dans la feuille "BASE")
    Mon code actuel :

    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
    'Pour le bouton Nouvelle campagne
    Private Sub CommandButton2_Click()
        Dim L As Integer
        If MsgBox("Confirmez-vous l’insertion de cette nouvelle campagne ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then
        L = Sheets("Base").Activate
        L = Range("p65536").End(xlUp).Row + 1 'Pour placer le nouvelenregistrement à la première ligne de tableau non vide
     
            Range("p" & L).Value = TextBox1
        Sheets("Feuil1").Activate
        End If
        Unload Me
     
    End Sub
     
    'Pour le bouton Quitter
    Private Sub CommandButton1_Click()
    Unload Me
    End Sub
    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour ftisse,

    Au vu de l'explicité de ce que tu demandes, je te propose, en effet, de faire un fichier exemple... explicite, peut-être, cette fois...
    Ceci n'est que mon humble avis.
    Chapeau à celui qui te réalisera une solution fonctionnelle avec cette explication !

    Cordialement,
    Kimy

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    Oui je me doute bien mais j'ai lue que il faut essayer sans fichier exemple.

    Je pense que ce sera plus simple.

    Checkbox.xlsm

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    Il faut aussi essayer de s'exprimer avec clarté (et si possible avec moins de fautes)

    on sait que ton probleme est lié à la Check Box
    mais quel est il?

    Tu veux rentrer des valeurs dans la checkbox pour qu'elles puissent etre selectionnées?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    Bonjour COCONUT2

    Oui je c'est l'orthographe n'est pas mon point fort...

    Non je veut que quand on la coche cela remplisse la colonne Q automatiquement et non pas manuelle comme j'ai fait avec les 0 et le 1.

    Quand je crée ma nouvelle campagne et que je la déclare par défaut en cochant la checkbox, il faut un 1 dans la colonne Q en face de la campagne que l'on vient de crée et un 0 dans toutes les autres campagnes.

    J’espère que je suis assez clair.

    Cordialement

  6. #6
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    En passant, il y a quand même des limites !

    Citation Envoyé par ftisse Voir le message
    Bonjour COCONUT2

    Oui, je sais... L'orthographe n'est pas mon point fort...

    Non, je veux que lorsque l'on coche la CheckBox, la colonne Q se remplisse automatiquement et non pas manuellement comme j'ai fait avec les 0 et le 1.

    Quand je crée ma nouvelle campagne et la déclare par défaut en cochant la checkbox, un 1 se place dans la colonne Q correspondante. Ainsi, logiquement, des 0 sont placés en colonne Q sur toutes les autres campagnes.

    J’espère avoir été plus explicite, cette fois-ci.

    Cordialement
    Et il est probable, étant nul en orthographe également et le Français n'étant pas ma langue natale, d'avoir laissé des fautes.

    Cordialement,
    Kimy

  7. #7
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    ftisse,

    Dis-moi si ceci te convient :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Private Sub CommandButton2_Click()
    Dim i As Integer, j As Integer
    Dim rng As Range
    Dim bool As Boolean
     
    With Worksheets("Base")
        If MsgBox("Confirmez-vous l’insertion de cette nouvelle campagne ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then
            Set rng = .Columns(16).Find("*", , , , , xlPrevious)
            bool = True
     
            For i = 1 To rng.Row
                If .Range("P1").Offset(i, 0) = Me.TextBox1 Then
                    If Me.CheckBox1 Then
                        For j = 1 To rng.Row - 1
                            .Range("Q1").Offset(j, 0) = 0
                        Next j
     
                        .Range("P1").Offset(i, 1) = 1
                        bool = False
                        Exit For
                    Else
                        MsgBox "Campagne déjà insérée"
                    End If
                End If
            Next i
     
            If bool Then
                rng.Offset(1, 0) = Me.TextBox1
     
                If Me.CheckBox1 Then
                    rng.Offset(1, 1) = 1
                    For j = 1 To rng.Row - 1
                        .Range("Q1").Offset(j, 0) = 0
                    Next j
                Else
                    rng.Offset(1, 1) = 0
                End If
            End If
     
        End If
     
    End With
    Unload Me
     
    End Sub


    Cordialement,
    Kimy

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    Nickel !!! merci beaucoup, un problème de moins sur mon fichier.



    Cordialement
    Florian

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    Maintenant j'ai un autre Userform ou j'ai le choix des campagnes (que l'on vient de crée) est ce que je peut mettre la campagne en cour (donc celle qui a le 1 en colonne Q) dans le combobox quand l'userform s'initialise ?

    Merci

  10. #10
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour Kimy_Ire, ftisse,

    A ftisse,

    Même si tu n'es pas fort en orthographe malgré ton statut d'étudiant (excuses-moi, je suis un vieux c..), pour ne pas décourager Kimy, tu pourrais lui attribuer (par reconnaissance) un dans ses interventions, il le mérite
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  11. #11
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    ftisse,

    La vaaaache ! C'est quoi ce code torduuuuu ?!

    Il n'y a pas de logique dans ce que tu fais j'ai l'impression...

    Bref, dans ton UserForm_Initialize(), je te propose de remplacer la ligne suivante : ComboBox1.ListIndex = 0 par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        With Worksheets("Base")
            Set rng = .Columns(17).Find("1", , xlValues, xlWhole)
     
            If Not rng Is Nothing Then
                For i = LBound(ComboBox1.List) To UBound(ComboBox1.List)
                    If ComboBox1.List(i) = rng.Offset(0, -1) Then
                        ComboBox1.ListIndex = i
                        Exit For
                    End If
                Next i
            Else
                ComboBox1.ListIndex = 0
            End If
        End With
    Il me semble que cela répond à ton besoin ! ^^

    @casefayere,
    Citation Envoyé par casefayere Voir le message
    Bonjour Kimy_Ire, ftisse,

    A ftisse,

    Même si tu n'es pas fort en orthographe malgré ton statut d'étudiant (excuses-moi, je suis un vieux c..), pour ne pas décourager Kimy, tu pourrais lui attribuer (par reconnaissance) un dans ses interventions, il le mérite
    Je ne mérite pas tant de reconnaissance !
    Cependant, je te remercie pour cette note touchante.

    Cordialement,
    Kimy

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    Oui je c'est, déjà je suis un amateur et en plus j'ai rajouter morceau par morceau pour arriver a mon but et c'est pas encore parfait...

    Je vient d'essayer ça ne marche pas, j'ai un message d'erreur "erreur de compilation: variable non définie "

  13. #13
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dim rng As Range
        Dim i As Integer
    au début de ton UserForm_Initialize().

  14. #14
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    L'userForm ce lance et marche bien mais le comboBox et toujours vide.

    Il y a un lien entre le combo box 1, 2 et 3, les donner disponible du 2eme sont en fonction du premier etc... sa ne peut pas venir de ça le problème ?

    En effet j'ai le même combobox dans l'userform Nouvelle parcelle, en entrant ce code cela marche bien.

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

Discussions similaires

  1. Problème avec checkbox
    Par allergique dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/10/2009, 21h44
  2. problème avec checkbox
    Par srt101 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/11/2008, 20h36
  3. Problème avec CheckBox
    Par zanzan212 dans le forum Struts 1
    Réponses: 6
    Dernier message: 11/01/2008, 16h07
  4. Problèmes avec checkboxes
    Par Strix dans le forum Langage
    Réponses: 5
    Dernier message: 12/06/2007, 15h13
  5. problème avec checkbox
    Par azur_34 dans le forum Struts 1
    Réponses: 1
    Dernier message: 14/05/2007, 12h24

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