jowen
Messages postés3Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention16 mai 2006
-
10 mai 2006 à 10:24
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
22 mai 2006 à 00:33
Bonjour,
nouveau venu dans la programmation j'aurais besoin d'un peu d'aide.
Oh rassurez vous 3 fois rien.
Je suis prof et je voudrais créer un classeur avec des checkbox qui me permettront de pouvoir calculer une notes.
Pour le moment j'arrive a affecter une note si la checkbox est cocher ou pas avec ces lignes de commandes:
Private Sub CheckBox1_Click()
If CheckBox1 = False Then
Range("h5").Value = 0
Else
Range("h5").Value = 1
End If
End Sub
Ce qui je n'arrive pas à faire c'est automatiser la valeur du "Range" en fonction de la position de la checkbox.
Si je veux rajouter une colonne je dois modifier manuellement les valeurs des "Range" se trouvant apres.
De plus comment faire pour qu'une fois la ligne de mon eleve codée je puisse recopier le code dans les lignes suivantes de maniere automatique (sans modifier manuellement la valeur Range) ?
Merci pour votre aide
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 10 mai 2006 à 12:28
Bonjour,
Ce qu'il nous faudrait c'est un exemple (où sont placés ces données dans les cellules) et comment cela pourrait évolué (si des données supp sont rentrées, sont-elles en ligne ou en colonne)
jowen
Messages postés3Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention16 mai 2006 12 mai 2006 à 16:42
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> Re-bonjour,
desole pour le retard dans la réponse:
Voici le programme se trouvant dans la checkbox en B4
Private Sub CheckBox1_Click()
If CheckBox1 = False Then
Range("b4").Value = 0 (valeur des points si la reponse est fausse)
Else
Range("b4").Value = 2 (valeur des points si la reponse est juste)
End If
End Sub
Si l'eleve a juste alors la checkbox est cochée et sa note augmente de 2 points
Au contraire si c'est faux ca note reste a 0
Mon probleme est que:
Si j'insere une colonne entre A et B le programme ci dessus n'est plus valable puisqu'il ne prend en compte que la valeur de la checkbox en B4 et qu'elle se trouvera en C4.
Donc j'aimerais un programme ou l'instruction qui me permettrai de prendre en compte la position de la checkbox et non une valeur que je lui aurai donner.
Autrement dit si je prend ma checkbox et que je la trimballe jusqu'a la colonne Z4 je voudrais que le prog prenne la nouvelle position automatiquement sans intervention de ma part.
J'espere que ce suplement d'info pourra vous servir
Merci
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 14 mai 2006 à 15:19
Désolé mais je ne vois pas l'image.
Je pense que pour résoudre le problème il faudrait que tu nommes la cellule de destination.
Si actuellement la cellule c'est B4, en haut à gauche, à l'intersection des en-têtes de Lignes et de Colonnes, tu as "B4" d'indiqué.
Il suffit de le remplacer par un nom et d'appuyer sur "Entrée" (ex: NoteEleve)
Puis, pour tout code lié à la cellule "B4", au lieu de dire
Range("b4").Value, il faudra mettre Range("NoteEleve").Value.
Si tu insères des colonnes, il n'y aura plus de problèmes.
@ ++
Mortalino
Vous n’avez pas trouvé la réponse que vous recherchez ?
jowen
Messages postés3Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention16 mai 2006 16 mai 2006 à 14:31
re bonjour et desole de mettre autant de temps ;o)
Je vais reprendre pas a pas ma demarche:
j'ai un tableau dans lequel je veux installer des checkbox (l'endroit importe peu). Ces checkbox auront pour tache de participer a la notation d'un eleve en fonction d'un bareme que j'aurais etabli et qui serais implemanté dans le prog de la checkbox.
Pour creer le prog je double click sur la checkbox et la son num apparait comme pour le programme suivant:
Private Sub CheckBox1_Click()
If CheckBox1 = False Then
Range("h5").Value = 0
Else
Range("h5").Value = 1
End If
End Sub
Ce que j'aimerais faire c'est pouvoir ecrire un prog qui me permette
1-de ne pas tenir compte de l'emplacement de la checkbox (une sorte de commande qui prend en compte l'endroit ou se trouve la checkbox programmée)
2-de ne pas tenir compte du range de la checkbox autrement dit qui prend en compte automatiquement la position de la case dans laquelle se trouve la checkbox.
3-qui soit copiable a l'ensemble des checkbox de mon tableau.
J'ai essaye autre chose aussi. Creer une boucle qui fait varier le nom de la checkbox : CheckBox1 puis 2 etc... mais aussi le range de maniere a ce que pour chaque colonne je n'ai besoin que de taper une seule fois le prog. Malheuresement je n'ai pas reussis a cause d'une erreur de synthaxe.
Voila j'espere ne pas avoir saoule avec toutes mes explications
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 22 mai 2006 à 00:33
Salut, là c'est moi qui suis désolé pour le retard.
En fait je pense que le plus simple serait de créer un UserForm (avec la propriété ShowModal = False) cela te permettra de naviguer sur la feuille avec le UserForm affiché.
Dans le UserForm, tu places ton CheckBox.
Ensuite, au lieu de dire Range("h5").Value, vu que la cellule peut varier, avant de cliquer sur le CheckBix, sélectionne la cellule où tu souhaites faire le traitement de données.
Puis :
Private Sub CheckBox1_Click()
If CheckBox1 = False Then
ActiveCell.Value = 0
Else
ActiveCell.Value = 1
End If
End Sub