Alimenter une feuille via Userform en fonction des choix dans Checkbox

Obi-Wan Kenobi

XLDnaute Nouveau
Bonjour a tous,

Je voudrais compiler des donnees dans une feuille en utilisant un userform.J ai ainsi cree un userform qui comporte un numero de semaine, le mois, des noms , 3 rubriques (voiture,camion, moto) , un champ "qte" et enfin un champ "heures ".
Mon probleme est le suivant : Je voudrais pouvoir selectionner 1 seul nom de personne a la fois mais ,en revanche, avoir la possibilite de choisir 1, 2 ou 3 rubriques et cumuler les qtes et heures sur la feuille (voir exemple ci-joint).
Alors si quelqu un a une idee , quelques conseils, je suis preneur !

Cordialement.

Edit: Desole j ai du desactiver la macro qui permettait d ouvrir le userform a partir de la feuille "recap" parce qu elle renvoyait systematiquement sur mon disque dur. :( Je ne sais pas trop ce qu il se passe sur ce coup car j ai pourtant essaye de la sauvegarder au niveau de la feuille :confused:
 

Pièces jointes

  • Checkbox xld.xlsm
    22.5 KB · Affichages: 113
Dernière édition:

Obi-Wan Kenobi

XLDnaute Nouveau
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Bonjour Paritec,Bonjour le Forum

Merci pour ta reponse.Est il possible egalement de cumuler les donnees voiture, camion et moto pour un seul nom les uns en dessous des autres ? ce qui,par exemple, donnerait dans mon tableau (voir aussi exemple ci-joint):

Semaine------ Mois------ Nom--------- Categorie----Qte----heures
42------- ----10------Maitre Follas----Camion-------2--------4
42------------10------Maitre Follas------Moto--------1--------3

Ou dois je me resigner a rentrer les infos les unes apres les autres ?

Sinon qu as tu change exactement pour pouvoir ne selectionner qu un seul nom ? Est ce au niveau des proprietes de l userform ?
 

Pièces jointes

  • Obiwan....V1.1.xlsm
    65.6 KB · Affichages: 110
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Bonjour Obiwan le forum
bon alors est-il possible de cumuler ? Réponse Oui, mais dans ton exemple tu ne cumule rien tu recopies 3 lignes différentes, alors tu veux quoi recopier ou cumuler ????? si tu cumules à ce moment là comment tu appelles la rubrique en Colonne D???????
et pour les modifications j'ai mis des boutons option à la place des checkbox, mais c'est de toutes façon pas cela la solution car si ta liste passe à 50 noms tu ne vas pas mettre 50 boutons!!!! il faut passer par un combo de sélection de nom mais réponds d'abord à la question sur le cumul et on modifiera le reste
a+
Papou:eek:
 

Obi-Wan Kenobi

XLDnaute Nouveau
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Bonjour Paritec,bonjour a tous,

Merci pour ta reponse.Desole je me suis effectivement mal exprime sur ce coup.Je veux recopier les infos saisis dans le userform . Mon souci est que je ne saisis qu une fois le numero de semaine, le mois et le nom de la personne mais je peux avoir a recopier plusieurs fois les infos concernant les rubriques voiture, camion et moto et pour une meme personne.

J ai pour le moment bidouille le code suivant (j ai un peu honte de mon bricolage :eek: ):

If QTECAM.Value <> "" Then
Sheets("Recap").Range("d65536").End(xlUp).Offset(1, 0).Value = "Camion"
Sheets("Recap").Range("e65536").End(xlUp).Offset(1, 0).Value = HRCAM.Value
Sheets("Recap").Range("f65536").End(xlUp).Offset(1, 0).Value = QTECAM.Value
If QTEVOIT.Value <> "" Then
Sheets("Recap").Range("d65536").End(xlUp).Offset(1, 0).Value = "Voiture"
Sheets("Recap").Range("e65536").End(xlUp).Offset(1, 0).Value = QTEVOIT.Value
Sheets("Recap").Range("f65536").End(xlUp).Offset(1, 0).Value = HRVOIT.Value
If QTEMOT.Value <> "" Then
Sheets("Recap").Range("d65536").End(xlUp).Offset(1, 0).Value = "Moto"
Sheets("Recap").Range("e65536").End(xlUp).Offset(1, 0).Value = QTEMOT.Value
Sheets("Recap").Range("f65536").End(xlUp).Offset(1, 0).Value = HRMOT.Value

Neanmoins mes questions sont les suivantes:

-Comment puis je copier vers le bas les lignes contenant le numero de semaine, le mois et le nom de la personne dans le cas de figure ou j ai plusieurs lignes concernant les vehicules ?
-Et il possible de faire apparaitre un message si aucun nom de personne n a ete choisis lors de la saisie ? Faut il grouper les "optionbutton" par exemple avec une "frame" et creer un code a partir de la ?
Cet userform est un exemple mais celui sur lequel je bosse dans le cadre de mon boulot comporte 38 categories et 13 personnes.Y a t'il un moyen (probablement) de simplifier le code ci dessus ?
Ci-joint le fichier au cas ou
Obiwan
 

Pièces jointes

  • Obiwan....V2.0.xlsm
    25.2 KB · Affichages: 86
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Bonsoir Obiwan, le forum
je ne t'ai pas oublié mais pas trop de temps enfin voilà testes et redis moi
a+
papou:D
 

Pièces jointes

  • Obiwan....V2.xlsm
    29.1 KB · Affichages: 104

Obi-Wan Kenobi

XLDnaute Nouveau
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Bonjour Paritec, Bonjour le forum

J espere que vous avez passe un bon reveillon.
Merci , Paritec, pour ta reponse.Desole de le faire avec du retard mais j'etais en deplacement la semaine derniere et je n avais pas trop de temps,non plus, pour me "replonger" dans mon formulaire. Ta proposition semble bien fonctionner mais il y a 1 petite bricole que j ai essaye de modifier. Il est, par exemple, possible de copier la quantite meme si le "textbox" heures est vide et vice versa. J ai essayer de trouver une parade en ajoutant les lignes, ci-dessous, mais je suis parti sur une usine a gaz car je vais me retrouver avec une ligne de code par textbox!

If T3.Value <> "" And C1 = False Then MsgBox "Vous devez selectionner le vehicule.": Exit Sub
If T5.Value <> "" And C2 = False Then MsgBox "Vous devez selectionner le vehicule.": Exit Sub
If T7.Value <> "" And C3 = False Then MsgBox "Vous devez selectionner le vehicule.": Exit Sub

Y a t il un moyen de l'ecrire plus simplement ? L idee est d'eviter de copier les lignes si l un de ces champs:vehicule, qte et heures, est vide.
 

Pièces jointes

  • Obiwan....V2.1xlsm.xlsm
    30.3 KB · Affichages: 71

Paritec

XLDnaute Barbatruc
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Re Obiwan le forum
à la relecture de ton dernier post que je n'avais pas compris au départ
voilà une version modifiée avec un contrôle.
a+
papou:D
 

Pièces jointes

  • Obiwan....V3.xlsm
    30 KB · Affichages: 84
Dernière édition:

Obi-Wan Kenobi

XLDnaute Nouveau
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Bonjour Paritec, Bonjour le forum,

Merci beaucoup c est exactement ce que je voulais.

Je voudrais encore apporter les modifications suivantes a cet userform:

- 1/ Effacer les texbox, la combobox et les checkbox apres validation
- 2/ Ajout d un bouton pour annuler la saisie en cours si necessaire .
- 3/ ajout d un format date (par ex: jour/mois/annee) dans le textbox semaine.L idee est d utiliser le systeme americain "week of" au lieu du numero de semaine. Cela me permettrait alors de conserver toutes les donnees dans une seule feuille et ce quelque soit l annee de saisie (ajouter les donnees 2012 apres 2011).
- 4/ Est il possible de simplifier la syntaxe suivante ? If Combobox1.ListIndex <> -1 And C1 Or C2 Or C3 Or C4 Or C5 Or C6 Or C7 Or C8 etc (car j ai 38 categories dans le fichier original)

Pour les points 1 et 2, j ai ajoute le bouton et insere quelques lignes de code que j ai trouve sur le forum. Ca semble fonctionner mais je ne serais pas contre l' avis d un specialiste pour me confirmer s il n y a rien qui cloche (code au mauvais endroit ou incoherences , par exemple ?)

Pour le point 3 , j ai trouve, ici egalement, le code de TI ci-dessous mais je ne sais pas (encore?) comment l integrer dans mon userform.

Pour le point 4, je suis curieux de savoir s il y a moyen de faire plus court car, dans le fichier original, j ai tout saisie sur la meme ligne :eek: . A priori ca fonctionne !

Code format date:

Option Explicit
'Ti 10-01-03
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub CommandButton2_Click()
End Sub
Private Sub TextBox1_Change()
Dim Texte As String
Texte = TextBox1.Text
Select Case Len(Texte)
Case 2, 5
Texte = Texte & "/"
End Select
TextBox1.Text = Texte
End Sub
Private Sub TextBox1_Enter()
TextBox1.Text = ""
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = Format(TextBox1.Text, "dd/mm/yyyy")
End Sub
Private Sub UserForm_Click()
End Sub

Ci-joint le fichier modifie (avec codes pour vider le userform et le bouton annuler).
Bonne journee.
Obiwan
 

Pièces jointes

  • Obiwan....V3.1.xlsm
    31.8 KB · Affichages: 84

Paritec

XLDnaute Barbatruc
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

bonjour obiwan le forum
alors si tu as 38 catégories ta méthode avec tes cases à cocher est nulle !!!!!!
tu ferais mieux de sélectionner d'ajouter ta liste en partant de deux textbox dans une listbox et à la validation de rentrer tout, enfin comme tu distilles les infos on ne peut pas t'aiguiller avant de savoir ce que tu veux
( c'est comme tes cases à cocher pour tes clients au début!!!)
a+
papou:D
 

Obi-Wan Kenobi

XLDnaute Nouveau
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Re Paritec, le forum

Je ne sais pas si j ai bien compris ta suggestion mais je vais essayer de creuser tout ca.
Je reconnais que mes explications peuvent etre confuses mais je decouvre egalement de nouvelles idees ou possiblites au fur et a mesure que j avance sur cet userform (au depart je pensais juste faire un truc tres simple).
J aime quand meme bien l idee d avoir les 38 categories sur mon userform parce que ca permet a l utilisateur de verifier si les donnees sont corrects (c-a-d comparer sa feuille papier avec ce qu il saisit dans excel , par example avant de valider).
Pourquoi dis tu que la methode est nulle (svp pas taper) ? ca risque de planter ou est ce au niveau de la lisibilite du code ?
 

Paritec

XLDnaute Barbatruc
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Re obiwan le forum
ta méthode avec tes cases à cocher rend le code lourd et difficile à lire et la macro compliquée
si tu avais une listbox avec les informations tu pourrais lire encore plus facilement car là, peu importe l'ordre de rentré des véhicules tu aurais une liste identique à la liste papier et lors de la validation tout irait sur la feuille
Voila mais sans un bout de fichier représentatif que veux tu que je te dise, c'est possible oui c'est sur
a+
papou:D
 

Paritec

XLDnaute Barbatruc
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

rte bonsoir Obiwan le forum
bon alors illustration de ce que tu peux faire avec un petit code maintenant tu ouvres tu testes
avec le bouton ajouter à la liste tu ajoutes les lignes à la listbox et cela te permet de vérifier tes données et si tu cliques sur valider là toutes les lignes de la listbox vont dans la feuille
a+
Papou:D
 

Pièces jointes

  • Obiwan....V4.xlsm
    36.4 KB · Affichages: 87

Paritec

XLDnaute Barbatruc
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Re obiwan le forum
bon j'ai un peu l'impression d'un monologue mais bon une autre version un peu plus aboutie
avec la possibilité de changer les lignes de la listbox en cas d'erreur !!!! ???? (puisque tu sembles dans tous tes post penser que tes utilisateurs sont pas trop capables de remplir deux textbox )
a+
papou:D
 

Pièces jointes

  • Obiwan....V6.xlsm
    37.6 KB · Affichages: 88

Paritec

XLDnaute Barbatruc
Re : Alimenter une feuille via Userform en fonction des choix dans Checkbox

Re Obiwan le forum
bon alors je continue mon monologue !!!!!!!
bref une version avec listview pour faire plus beau plus classé !!!
a+
papou:eek:
 

Pièces jointes

  • Obiwan....V7.xlsm
    40.8 KB · Affichages: 128

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87