Afficher liste en saisissant une date

Résolu/Fermé
jetset30 Messages postés 29 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 12 février 2009 - 11 mai 2008 à 10:54
jetset30 Messages postés 29 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 12 février 2009 - 13 mai 2008 à 20:06
Bonjour,

Je cherche à créer un macro qui me permettrait à l'ouverture du fichier excel de saisir une date dans un userform puis en validant m'afficherait la liste du personnel du jour demandé.

Merci d'avance

https://www.cjoint.com/?flkUyI4IRy

5 réponses

dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 82
12 mai 2008 à 08:35
Le nombre de personnes est il fixe ou peut-il évoluer ?
0
dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 82
12 mai 2008 à 10:57
Un début de réponse.

Ce code doit être inséré dans ThisWorkbook
Private Sub Workbook_Activate()
    Dim sDateRecherche As String
    Dim sPortée As String
    Dim rResultat As Range
    Dim sListePersonnel As String
    Dim bSortie As Boolean
    
    sDateRecherche = InputBox("Quelle est la date de recherche", "Saisie de la date")
    
    'On suppose que ton tableau se trouve sur la feuille 1 et commence en A1
    
    'Définition de la portée de la recherche
    Range("A1").End(xlToRight).Select   'On sélectionne la dernière colonne
    sPortée = ("A1:") + Chr(ActiveCell.Column + 64) + "1"
    
    Set rResultat = Worksheets(1).Range(sPortée).Find(sDateRecherche) 'On recherche la date
    If rResultat Is Nothing Then
        MsgBox ("Recherche infructueuse")
    Else
        sPortée = Chr(rResultat.Column + 64) + CStr(rResultat.Row + 1)
        rResultat.End(xlDown).Activate
        sPortée = sPortée + ":" + Chr(ActiveCell.Column + 64) + CStr(ActiveCell.Row)
        Range(sPortée).Select
        sListePersonnel = "Les personnes concernées pour le " + sDateRecherche + " sont :"
        For Each Cellule In Selection
            sListePersonnel = sListePersonnel + vbCr + Cellule.Value
        Next
        bSortie = MsgBox(sListePersonnel, vbOKOnly, "Résultat")
    End If
    
    Range("A1").Activate 'on se repositionne sur la première cellule
    
End Sub
0
jetset30 Messages postés 29 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 12 février 2009
12 mai 2008 à 18:40
Salut dandypunk et merci ça fonctionne!!

A+
0
dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 82
12 mai 2008 à 22:09
Merci du merci.
N'oublie pas de mettre ton post comme réglé.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jetset30 Messages postés 29 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 12 février 2009
13 mai 2008 à 20:06
OK
0