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

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?

4 réponses

  1. 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
    1. 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
      1. Merci beaucoup ça fonctionne nickel.
        0