Excel vba case a cocher

jeffsublime01230 Messages postés 3 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 27 novembre 2009 - 25 nov. 2009 à 22:36
jeffsublime01230 Messages postés 3 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 27 novembre 2009 - 27 nov. 2009 à 18:21
Bonjour,

Voila je cher à faire le code ci-dessous et il ne fonctionne pas, avez vous des sugestions

merci

Private Sub CommandButton1_Click()
Dim str As Variant
If CheckBox1 = True Then
str = Range("A1").Value
CheckBox1 = str
Else
If CheckBox1 False And CheckBox2 True Then
str = Range("A1").Value
CheckBox2 = str
Else
If (CheckBox1 True And CheckBox2 True) Then
str = Range("A1").Value
CheckBox1 = str
str = Range("A2").Value
CheckBox2 = str
End If
End If
End If
End Sub

8 réponses

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
25 nov. 2009 à 23:01
Bonjour,

Et (question bête ?) que contien donc la cellule A1 ?

Pas bien (non...) de ne pas préciser expressément la propriété d'un contrôle.... (pas bien du tout, même )
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
25 nov. 2009 à 23:03
En plus, tu n'iras jamais au dernier test ... (tu vois pourquoi ? ... j'espère que oui ...)
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
25 nov. 2009 à 23:41
Bonsoir,

Ouais... si je remets un peu d'ordre...

Private Sub CommandButton1_Click()

    If CheckBox1.Value True And CheckBox2.Value False Then
        CheckBox1.Caption = Range("A1").Value
    ElseIf CheckBox1.Value False And CheckBox2.Value True Then
        CheckBox2.Caption = Range("A1").Value
    ElseIf CheckBox1.Value True And CheckBox2.Value True Then
        CheckBox1.Caption = Range("A1").Value
        CheckBox2.Caption = Range("A2").Value
    Else
        ' Le dernier cas ?
        
    End If

End Sub


Ensuite, je ne sais pas trop bien où tu vas... et je crois que je ne veux pas le savoir...

Amicalement,
Us.
0
jeffsublime01230 Messages postés 3 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 27 novembre 2009
26 nov. 2009 à 14:20
Ok je vois que vous êtes pas trop sure...

Donc je vous explique, premièrement je débute donc j'apprend,

Ce que je veux faire j'ai créer un formulaire avec environ 20 userform, a mesure que je rempli les userform une feuil excel se rempli.

Mon problème est le manque de place sur cette feuil donc voila le pourquoi de cette demande.

sur le userform en question j'ai 20 checkbox qui peuvent tous être sélectionné ou seulement 1,2,3 etc ....

ce que je n'arrive pas à faire si je coche checkbox1 seulement un item apparais en A1 mais si je coche checkbox5 je veux également qui soit en A1 pour que la mise en page demeure la même, alors voila le pourquoi de ce code si je coche checkbox1 et checkbox5 les 2 ne peuvent apparaitre en A1 donc je veux que si les 2 sont coché qu'une suite se fasse
Checkbox1 and checkbox5 true le premier vas en A1 et le 2ieme en B1 etc etc

Avez-vous des sugestions????

merci de votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
26 nov. 2009 à 14:36
Ok je vois que vous êtes pas trop sure...


Cà , c'est à voir... c'est plutôt toi, qui ne l'est pas, dirais-je

et çà :
ce que je n'arrive pas à faire si je coche checkbox1 seulement un item apparais en A1

on ne voit pas où et comment tu l'exprimes dans ton bout de code montré !
Et ça ne risque pas d'être fait avec :
str = Range("A1").Value 
CheckBox1 = str 


qui :
1) donne à une variable la contenu de A1 (le contraire de ce que tu exposes, donc)
et donne cette même valeur à la propriété par défaut de la CheckBox !
Le reste de tes explications échappe totalement à ma compréhension (pas clair et en réalité assez confus).
Désolé ...
0
Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010
26 nov. 2009 à 15:21
Allez je me lance :


'Ca rend le code moins lourd --V
Application.ScreenUpdating = False

Sheets("TaFeuille").Select
If CheckBox1.Value = True Then
With Range("A1").End(xlRight).Offset(0, 1).Select
ActiveCell.Value = TonItem.Value
End If
If CheckBox2.Value = True Then
With Range("A1").End(xlRight).Offset(0, 1).Select
ActiveCell.Value = TonItem.Value
End If
If CheckBox3.Value = True Then
With Range("A1").End(xlRight).Offset(0, 1).Select
ActiveCell.Value = TonItem.Value
End If
If CheckBox4.Value = True Then
With Range("A1").End(xlRight).Offset(0, 1).Select
ActiveCell.Value = TonItem.Value
End If
              '.
              '.
              '.
              '.
              '. Jusqu'a 20
If CheckBox20.Value = True Then
With Range("A1").End(xlRight).Offset(0, 1).Select
ActiveCell.Value = TonItem.Value
End If



Essaye comme ça,
Le code défini quelle est la dernière cellule rempli et incrémente d'une colonne. Ensuite, il copie TonItem.Value dans la dernière cellule

Va dans ce sens, attention j'ai pas testé le code. Il y a peut-être des choses à pofiner.

------------
Même joueur joue encore
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
26 nov. 2009 à 21:06
Bonsoir,

Bien heureux celui qui comprend... Pour l'heure je rejoins jmf0 dans sa confusion... tu veux bien, hein ?

jeffsublime01230, faut vraiment que tu éclaircisses ta pensée pour expliquer ensuite les choses... Nous ne sommes ni devant ton écran, ni dans ta tête; tu t'en doutes bien...

Amicalement,
Us.
0
jeffsublime01230 Messages postés 3 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 27 novembre 2009
27 nov. 2009 à 18:21
Merci à tous de porter attention à ce message.
voila ce que je cherche à faire
mais j'ai 20 check box donc les probabilité sont enorme donc je cherchais à faire plus simple mais bon je crois que c'est peut être tout simplement pas possible

merci

Private Sub CommandButton1_Click()
Range("A1,A2") = ""
If CheckBox1 Then Range("A1") Range("E1") Else Range("A1") ""
If CheckBox1 False And CheckBox2 True Then Range("A1") = Range("E2")
If CheckBox1 True And CheckBox2 True Then Range("A1") = Range("E1"): Range("A2") = Range("E2")
If CheckBox1 False And CheckBox2 False And CheckBox3 = True Then Range("A1") = Range("E3"): Range("A2") = ""
If CheckBox1 False And CheckBox2 True And CheckBox3 = True Then Range("A1") = Range("E1"): Range("A2") = Range("E3")
End Sub
0
Rejoignez-nous