Excel vba case a cocher

Signaler
Messages postés
3
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2009
-
Messages postés
3
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2009
-
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

Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
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 )
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
En plus, tu n'iras jamais au dernier test ... (tu vois pourquoi ? ... j'espère que oui ...)
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
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.
Messages postés
3
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2009

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.
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
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é ...
Messages postés
22
Date d'inscription
jeudi 10 août 2006
Statut
Membre
Dernière intervention
8 juillet 2010

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
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
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.
Messages postés
3
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2009

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