Saisir tableau d'après Userform / intersection suiv. condition

bermars13 Messages postés 3 Statut Membre -  
 bermars13 -
J'ai un Userform qui va permettre au personnel de pointer suivant :
- Une date TextBox
- Une activité ListBox


Mon problème c'est de remplir un tableau à une intersection Date en ligne colonne A et les activités en titre de colonne B, C, D... Le temps correspondant.

Pouvez-vous m'aider?
A voir également:

4 réponses

jc80 Messages postés 5063 Statut Membre 1 425
 
Bonjour

Plutot que de mettre des photos qui sont inexploitables pour faciliter
le travail,il est préférable de mettre un exemplaire vierge de votre fichier.
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com

Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse..
Cordialement
0
bermars13 Messages postés 3 Statut Membre
 
Merci pour la méthode
https://www.cjoint.com/c/EDEtvGapznl
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Bonsoir bermars

1) Nommer les listbox et texbox de l'userform (c'est plus facile pour si retrouver dans les formules
avec par ex la listbox nommée activ, le etxtbox date nommé datep, le textbox heure nommée nbH et le textbox objet nommé nbO

2) Forcer le format date à la sortie du textbox datep avec ces lignes:
Private Sub datep_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
datep.Value = Format(datep.Value, "dd/mm/yyyy")
End Sub


3) dans la macro associée au bouton Saisir on retrouve les colonne et ligne avec MATCH (équivalent VBA d'EQUIV) puis on inscrit dans les cellules correspondantes :
col = Application.WorksheetFunction.Match(activ.List(activ.ListIndex), Sheets("Pointage modèle").Range("4:4"), 0)
lig = Application.WorksheetFunction.Match(CDbl(CDate(datep.Value)), Sheets("Pointage modèle").Range("A:A"), 0)
Sheets("Pointage modèle").Cells(lig, col) = nbH
Sheets("Pointage modèle").Cells(lig, col + 1) = nbO


Attention il faut que les intitulés de la ligne 4 de Pointage modèle correspondent exactement à ceux de la listbox, ce qui n'est pas le cas actuellement : ACTIVITES 1 dans Listbox mais ACTIVITES1 (sans espace) en B4; donc mettre l'espace avant de lancer la macro !

Cdlmnt
Via
0
bermars13
 
Merci beaucoup ça fonctionne nickel.
0