Remplir plusieurs tableaux avec un userform [Résolu]

Remplir plusieurs tableaux avec un userform Remplir un tableau à partir d'un userform ? » Forum - Programmation Remplir un tableau Excel avec un UserForm » Forum - VB / VBA Remplir un tableau php » Forum - PHP Remplir tableau en C (Résolu) » Forum - C Remplir un tableau de chaine en C » Forum - C

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/



Forum

Remplir plusieurs tableaux avec un userform Remplir un tableau à partir d'un userform ? » Forum - Programmation Remplir un tableau Excel avec un UserForm » Forum - VB / VBA Remplir un tableau php » Forum - PHP Remplir tableau en C (Résolu) » Forum - C Remplir un tableau de chaine en C » Forum - C

Web: www.shapebootstrap.net

13 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Merci julia Namor 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22248 internautes ce mois-ci

Reply
réponses:
  • Zorbaxx

    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...

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

,,,
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.

Merci julia Namor 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22248 internautes ce mois-ci

Reply
réponses:
  • Zorbaxx

    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

  • julia Namor

    Bonsoir
    ceci devrait le faire
    https://www.cjoint.com/c/HBnw4dlDYqD
    fais moi un retour
    cordialement

  • Zorbaxx

    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonsoir
J'ai modifié le fichier .
Attention: la ligne jaune est cruciale
https://www.cjoint.com/c/HBovosNALWE
bien cordialement

Merci julia Namor 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22248 internautes ce mois-ci

Reply
réponses:
  • Zorbaxx

    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Merci julia Namor 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22248 internautes ce mois-ci

Reply
réponses:
  • Zorbaxx

    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....

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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.

Reply
réponses:
  • Zorbaxx

    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,

  • julia Namor

    voir le fichier envoyé depuis hier

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed