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

Fermé
bermars13 Messages postés 3 Date d'inscription jeudi 30 avril 2015 Statut Membre Dernière intervention 9 mai 2015 - Modifié par bermars13 le 30/04/2015 à 17:55
 bermars13 - 2 mai 2015 à 15:59
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 4242 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 424
30 avril 2015 à 18:37
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 Date d'inscription jeudi 30 avril 2015 Statut Membre Dernière intervention 9 mai 2015
30 avril 2015 à 19:07
Merci pour la méthode
https://www.cjoint.com/c/EDEtvGapznl
0
via55 Messages postés 14471 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 29 août 2024 2 727
1 mai 2015 à 00:33
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
Merci beaucoup ça fonctionne nickel.
0