Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1331 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Résultat de checkbox dans une cellule. Excel 2007

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Résultat de checkbox dans une cellule. Excel 2007

n°2176106
Rgweltaz
Posté le 17-02-2013 à 12:23:11  profilanswer
 

Bonjour à tous,
Je suis nouveau et après avoir cherché longuement je n'arrive pas à trouver une solution.
Je suis enseignant et je me suis mis dans la tête de créer sous excel un petit programme qui m'aiderait à réaliser mes TP. (Quelle idée !!!!  :heink: )
J'ai tout 'abord voulu faire simple avec excel mais ce que je veux m'a obligé à utiliser des userform et des checkbox.
Donc en lisant les forum j'ai commencé de façon autodidacte à essayer de m'en sortir avec vba excel.
 
Rentrons dans le vif du sujet :
J'ai créer un bouton qui lance un userform.
Dans ce userform il y a des checkbox.
J'ai réussi à faire en sorte que lorsque je coche une case, l'intitulé s'écrit dans une cellule.
Puis lorsque je coche plusieurs case, les intitulés apparaissent dans d'autres cellules.
Comme ça :
 
Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then
[a4] = "TETE"
Else
[a4] = ""
End If
End Sub
 
Private Sub CheckBox3_Click()
If CheckBox3.Value = True Then
[a5] = "TITI"
Else
[a5] = ""
End If
 
End Sub
 
Private Sub CheckBox4_Click()
If CheckBox4.Value = True Then
[a6] = "TOTO"
Else
[a6] = ""
End If
End Sub
 
Private Sub CheckBox5_Click()
If CheckBox5.Value = True Then
[a7] = "TUTU"
Else
[a7] = ""
End If
End Sub
 
Private Sub CommandButton1_Click()
UserForm1.Hide
 
End Sub
 
 
Private Sub UserForm_Click()
 
End Sub
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
[a3] = "TATA"
Else
[a3] = ""
End If
End Sub
 
TATA, TOTO, ... sont, bien sur, pour l'exercice  :)  
Mon userform comportera une bonne cinquantaine de cases à cocher  :cry:  
 
Ce que j'essaie de faire est que si je ne coche pas mon premier checkbox, le résultat du prochain prend la place sur la première cellule.
Je voudrais éviter donc d'avoir le résultat d'une liste sur une feuille excel avec des cellules vides entre elles.
 
Voilà vous savez tout.
Je vous remercie de la lecture de ce message et du temps que vous pourrez me consacrer.
Ps: si je ne suis pas assez clair, faites le moi savoir  :ange:  
Cordialement
Rgweltaz

mood
Publicité
Posté le 17-02-2013 à 12:23:11  profilanswer
 

n°2176169
vave
Nice to meet me
Posté le 18-02-2013 à 09:30:17  profilanswer
 

Bonjour,
tu peux trouver la dernière ligne non vide de ton onglet avec cette méthode :

Code :
  1. dim LastLigne as integer
  2. LastLigne = Cells(Rows.Count, 1).End(xlUp).Row
  3. 'et ensuite utiliser cette variable :
  4. cells(LastLigne+1, 1) = "TOTO"



---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2176197
Marc L
Posté le 18-02-2013 à 10:51:15  profilanswer
 

 
           Bonjour Rgweltaz !

 

           Je suis un peu étonné, pour un enseignant, d'une telle erreur de conception !

 

           Utiliser l'évènement _Click d'un checkbox ne sert effectivement qu'à traiter un checkbox à la fois
           sans s'occuper des autres …   Même en utilisant le code d'oovaveoo, que se passe-t-il
           si une première fois le checkbox est activé puis est désactivé dans un second temps ? …

 

           La propriété Tag pourrait être utilisé pour stocker l'adresse de la cellule mais pour éviter l'usine à gaz,
           il vaudrait mieux traiter les checkboxs ensemble lors de la validation via le bouton CommandButton1
           utilisé pour la sortie de la fenêtre  (au passage mieux vaut utiliser Unload au lieu de Hide).

 

           Procédure de l'évènement click du bouton :
           - Effacer la colonne A à partir de la troisième ligne
           - Initialisation de la variable L à 2
           - Traitement de chaque checkbox : s'il est coché, L = L + 1 puis copie de l'info en ligne L de la colonne A
           - Fermeture de l'Userform.

 

           J'aurais peut-être un créneau en milieu d'après-midi pour étudier la possibilité de traiter les checkboxs par une boucle
           et d'inscrire les informations via la propriété Tag si elle n'est pas encore utilisée, si cela vous intéresse …

 

           ps : y-a-t-il des infos à conserver en A1 & A2 ou pas ?

 

           Autre solution en conservant la "conception" actuelle :   effacer les lignes vides de la liste à la sortie de la fenêtre …


Message édité par Marc L le 18-02-2013 à 11:03:19
n°2176200
vave
Nice to meet me
Posté le 18-02-2013 à 11:04:08  profilanswer
 

Ah oui, bien vu.
J'ai répondu sans chercher plus loin et comme tu dis, ça ne peut pas fonctionner.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2176260
Rgweltaz
Posté le 18-02-2013 à 14:44:00  profilanswer
 

Bonjour à tous,
Merci de me répondre aussi vite.
Après recherches et aides j'ai normalement la réponse.
 

Citation :

Je suis un peu étonné, pour un enseignant, d'une telle erreur de conception !


Je l'ai dit : je suis enseignant mais pas en informatique  :)  
Ah vrai dire, je suis enseignant en plasturgie (étude des matières plastiques et de leur mise en oeuvre). Et j'essai de faire une petite aide informatique pour mon équipe pédagogique.
Dans un premier temps je vous demandais de l'aide pour créer une page type de TP avec des tâches prédéfinies, celle qui sont dans l'USF.
Ensuite je ferai correspondre ces tâches avec des compétences qui leur sont liées.
En tout cas merci de votre aide.
J'espère pouvoir vous fournir le fichier pour que vous puissiez comprendre. (Apparemment on ne peut pas)
 
Rgweltaz

n°2176265
Rgweltaz
Posté le 18-02-2013 à 14:56:01  profilanswer
 

Re bonjour,
 
Voici le fichier en question : http://ge.tt/90IMumY/v/0?c
En feuille 1 : les tâches en foutoirs (pas important)
En feuille 2 : une ébauche d'une page du projet
En feuille 3 : les tâches et compétences liées par un "1" dans chaque cellule
 
J'espère que vous comprendrez
 
Rgweltaz

n°2176286
Marc L
Posté le 18-02-2013 à 15:40:45  profilanswer
 

 
           Là je ne peux télécharger, sécurité & proxi oblige …  
 
           Mais j'ai comme l'impression que l'on s'éloigne de la problématique de départ, non ?   Avez-vous progressé ?
 

n°2176287
Rgweltaz
Posté le 18-02-2013 à 15:44:34  profilanswer
 

Ah ?!
Oui j'ai progressé.
Merci
J'ai un USF avec des checkbox.
Et quand je clique sur celles-ci elles s'affichent correctement.
C'est dommage que vous ne puissiez pas regarder le fichier car c'est une petite partie d'un long projet.
Rgweltaz

n°2176293
Marc L
Posté le 18-02-2013 à 15:55:40  profilanswer
 

 
           Donc le sujet est réglé alors ?
           En exécutant le traitement à la fermeture de l'Userform via le bouton, cela règle la question …
 
           Normalement c'est un sujet par question sauf quand c'est dans la continuité d'un même code …
 
           Il est préférable d'exposer une problématique dans sa globalité sinon il y a un risque  " d'usine à gaz  "  !
 

n°2176296
Rgweltaz
Posté le 18-02-2013 à 16:03:31  profilanswer
 

Ok.
Merci encore.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Résultat de checkbox dans une cellule. Excel 2007

 

Sujets relatifs
[VBA] Pied de page en lien avec une cellule [Résolu]excel vba
Utiliser librairies R.euters E.ikon sur Excel VBAprogramation excel
créer un automatisme dans excelDOM csv/excel
Compatibilité Excel 2003 et Excel 2010problème format cellule
Macro excel : le nom de variable apparaît dans la formule excelMACRO EXCEL
Plus de sujets relatifs à : Résultat de checkbox dans une cellule. Excel 2007


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR