Remplir plusieurs tableaux avec un userform [Résolu/Fermé]

Signaler
Messages postés
29
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
8 novembre 2018
-
Messages postés
29
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
8 novembre 2018
-
Bonjour, Je me tourne une nouvelle fois vers vous pour accroître une nouvelle fois mes connaissances...

J'aimerai réussir à remplir plusieurs tableaux à partir du formulaire que je suis entrain de créer.

J'explique en bref et je joint un brouillon pour essayer d'être le plus clair possible.. mais j'avoue que cela n'est pas toujours évident ^^

Je dois calculer des productivités et pour ce faire j'aimerai que lorsque des employés remplissent le userform, les tableaux de la feuille "data" se complétent en fonction de leurs numéros de personnel(ma textbox1). C'est à dire qu'excel "switch" de tableau à chaque fois qu'il voit un numéro différent. Voilà ce dont je me sert pour remplir le premier tableau mais je bloque sur la manière de pouvoir compléter les autres sans passer par énormément de "if".

Private Sub valider_Click()

Dim dlt As Integer

If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Then
MsgBox ("Il manque des informations!")
GoTo 1
End If


If MsgBox("Ajouter les données?", vbYesNo, "Confirmation") = vbYes Then
dlt = Sheets("data").Range("B29").End(xlUp).Row + 1
Sheets("data").Cells(5, 2) = TextBox1
Sheets("data").Cells(dlt, 2) = Now()
Sheets("data").Cells(dlt, 3).NumberFormat = "hh:mm"
Sheets("data").Cells(dlt, 3) = Now()
Sheets("data").Cells(dlt, 4) = TextBox1
Sheets("data").Cells(dlt, 5) = TextBox2
Sheets("data").Cells(dlt, 6) = TextBox3
End If

Unload Me
Useform1.Show
1
End Sub

Je ne suis pas un grand habitué de vba mais j'y travaille ^^


Merci à vous

https://mon-partage.fr/f/Y9Y6AA0b/



5 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 471
Bonjour,

Tu peux changer de tableau en mettant l'adresse dans ta liste employés.

Cependant je ne pense pas que tes tableaux soient une bonne solution car ils vont te compliquer la vie sans utilité. Je pense que tu devrais tout mettre dans le même tableau et si tu veux te créer la visualisation d'un employé, ce sera très simple sur une autre feuille par exemple avec une simple filtre élaboré avec une ligne de code.

Enfin c'est toi qui décide car je ne connais pas ton cahier des charges.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
29
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
8 novembre 2018

Bonjour et merci de tenter de m'aider,

En fait la feuille data n'est pas vraiment nécessaire,

Il faudrait que lorsqu'un utilisateur remplisse le userform, son numéro (textbox1) s'affiche en C6, les produits qu'il prépare (textbox2) en D6,E6,... et les quantités(textbox3) en D7,E7... mais que lorsque qu'un autre employé entre des données, son numéro se mettrai en C6, les produit en D8,E8,.. et les quantité en D9,E9,... etc à chaque fois sur la ligne suivante.
Ils vont rentrer pls fois des données au cours de la journée et donc que à chaque fois qu'un numéro d'employé revienne, il indique ces données en face du bon numéro de personnel...
Je na sais pas si j'arrive a être très clair...
Merci,
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
voir le fichier envoyé depuis hier
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
Bonsoir
Voila le fichier modifié selon ta demande
c'est vrai que l'on pourrait faire plus intuitif avec un seul tableau et un filtre élaboré.
Mais faudra peut être repenser ton projet.

https://www.cjoint.com/c/HBmvMbyAL3D
bien cordialement
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
29
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
8 novembre 2018

Bonsoir Julia et merci,
Je pense m'être mal expliqué hier, en réalité pas besoin d'voir 100 tableaux pour tout les membres du personnel. Ils ne peuvent être que 20 max à être assigné à cette tâche et le tableaux sera reset tout les matins. De plus les personne assignées à cette tâche sont amené à changer tout les jours et la liste me sert uniquement pour mes recherchev.

Mais bon, meme 20 tableaux, tu a raison, ce n'est pas très intuitif.

J'essaie donc de rentrer les données directement dans ma feuille prod mais je me rend bien compte que mes connaissance en vba sont limitées... voila ou j'en suis :

Private Sub valider_Click()

Dim dlt As Integer

If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Then
MsgBox ("Il manque des informations!")
GoTo 1
End If


If MsgBox("Ajouter les données?", vbYesNo, "Confirmation") = vbYes Then


If TextBox1 <> Sheets("prod").Cells(6, 3) Then
dlt = Sheets("prod").Range("w8").End(xlToLeft).Column + 1
Sheets("prod").Cells(8, 3) = TextBox1
Sheets("prod").Cells(8, dlt) = TextBox2
Sheets("prod").Cells(9, dlt) = TextBox3
Else


dlt = Sheets("prod").Range("w6").End(xlToLeft).Column + 1
Sheets("prod").Cells(6, 3) = TextBox1
Sheets("prod").Cells(6, dlt) = TextBox2
Sheets("prod").Cells(7, dlt) = TextBox3
End If
End If


Unload Me
Useform1.Show
1
End Sub

Mais je me rend compte qu'en partant comme ca je vais devoir partir dans une série de "if" interminables...
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
,,,
peux tu envoyer un tableau "fait main" qui montre ce que tu veux. On y verrait un peu plus clair
pour l’édition des codes.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
29
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
8 novembre 2018

https://www.cjoint.com/c/HBnuDUUJgFO

Voila en gros à quoi cela ressemble, ici je saisi toutes les cellules de (C5;W54) manuellement et j'aimerai qu'elles le soit via mon userform...
Merci encore
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
Bonsoir
ceci devrait le faire
https://www.cjoint.com/c/HBnw4dlDYqD
fais moi un retour
cordialement
Messages postés
29
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
8 novembre 2018

Bonjour Julia, et merci encore de prendre sur ton temps pour m'aider

Lorsque j'ouvre ton fichier, ton code marche à la perfection et c'est exactement ce à quoi je voulais arriver. Malheureusement, lorsque le tableau est vide, les données ne s'enregistre plus du tout au bon endroit. Je pense que le fait d'avoir certaines des cellules fusionnées pause problème. et je ne vois pas d'ou cela provient
Je ne comprend pas encore tout ton code et je suis entrain de m'instruire pour bien tout saisir.
Merci
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
Bonsoir
J'ai modifié le fichier .
Attention: la ligne jaune est cruciale
https://www.cjoint.com/c/HBovosNALWE
bien cordialement
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
29
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
8 novembre 2018

Bonsoir,

J'avais réussi à régler le problème en défusionant des cellules là ou tu a inséré la ligne jaune. Mais c'est plus propre comme ça et je n'avais pas du tout pensé à ça. Je te remercie encore, j'ai pu bien avancer et j'ai appris beaucoup grâce à toi.

Maintenant je suis bloqué sur une histoire de format de dates dans un autre userform qui me sert à effectuer des recherches sur ce classeur haha... Si le coeur t'en dit ton aide est la bienvenue ^^.

https://www.cjoint.com/c/HBpu7wR0NtO

Un tout grand merci encore,

Cordialement
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
Bonjour
Voila le code modifié

Private Sub Chercher_Click()

If TextBox1 = "" Then
MsgBox "Veuillez entrer un numéro de course!", vbInformation + vbOKOnly, "Numéro de course invalide"
GoTo 1
End If

If WorksheetFunction.CountIf(Sheets("Données").Range("b:b"), Me.TextBox1.Value) = 0 Then
MsgBox "Le numéro de course n'existe pas!", vbInformation + vbOKOnly, "Numéro de course invalide"
TextBox1 = ""
GoTo 1
Else
Me.TextBox2 = Application.WorksheetFunction.VLookup((TextBox1), Sheets("Données").Range("B2:G360"), 2, 0)
Me.TextBox2.Value = CDate(Me.TextBox2.Value)
Me.TextBox3 = Application.WorksheetFunction.VLookup((TextBox1), Sheets("Données").Range("B2:G360"), 3, 0)
Me.TextBox3.Value = Format(Me.TextBox3, "hh:mm")
Me.TextBox4 = Application.WorksheetFunction.VLookup((TextBox1), Sheets("Données").Range("B2:G360"), 4, 0)
Me.TextBox5 = Application.WorksheetFunction.VLookup((TextBox1), Sheets("Données").Range("B2:G360"), 6, 0)
Me.TextBox6 = Application.WorksheetFunction.VLookup((TextBox1), Sheets("Données").Range("B2:G360"), 5, 0)

End If

1
End Sub
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
29
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
8 novembre 2018

Merci Julia ça fonctionne nickel.
J'ai encore une dernière question après promis je te laisse tranquille ^^.
Dans mon useform1 je lui demande d'aller entrer les valeurs des textbox dans ma feuille "données" avec ce code

With Sheets("données")
dlt = .Range("b" & Rows.Count).End(xlUp).Row + 1
.Cells(dlt, 3) = Now()
.Cells(dlt, 4).NumberFormat = "hh:mm"
.Cells(dlt, 4) = Now()
.Cells(dlt, 5) = TextBox1.Value
.Cells(dlt, 2) = TextBox2.Value
.Cells(dlt, 7) = TextBox3.Value
End With

Le problème c'est que quand l'utilisateur répond "non" au vbyesno, les valeurs sont tout de même entrées sur ma feuille "données". Par contre sur la feuille "prod" pas de problèmes. Le code n'est pas placé au bon endroit et je ne vois pas où le mettre. J'ai bien contourné le problème en ajoutant un vbyesno mais du coup on doit "valider" deux fois "non" et ça fait pas très propre...

Désolé si j'abuse de ta gentillesse....