Faire un graphique prélevant donnée de checkbox par mois
Bonjour à tous,
Désolé pour le titre du sujet qui ne doit pas être très claire...
Je m'explique.
Je travail actuellement sur la réalisation d'un tableau visant à suivre le statut des candidats postulant dans notre société. J'ai donc réalisé un tableau Excel où l'on peut entrer les données du candidat, la date à laquelle nous l'avons ajouté au tableau, mais aussi des checkbox afin de modifier le statut de la candidature.
Voici une photo pour expliciter mes propos :
De ce fait sur une autre feuille, j'aimerais avoir des graphiques propre à chaque mois de l'année, qui résume les cotât des statuts. Cependant je n'arrive pas à prélever les données de mes checkbox par mois.
Voici ce que j'ai fais pour le moment :
(À la place de titre du graphique, il y aura un mois)
Savez vous quelle formule utiliser et comment la rédiger ?
Je vous avoue avoir passé déjà deux jours sur internet à chercher sans rien trouver.. à vrai dire je suis nouveau sur Excel...
Merci pour votre aide.
Cordialement,
Jérémy
Bonjour,
Voici une proposition:
On peut changer le mois affiché en cliquant simplement sur une des flèches à côté de la date.
J'ai beaucoup utilisé la fonction NB.SI.ENS avec les critères de date :
">=" dateDébut
"<=" dateFin
dateDébut: premier jour du mois, est la date contenue dans B1
dateFin: dernier jour du mois, est calculée par rapport à la date dans B1 en utilisant FIN.MOIS(B1;0)
Et beaucoup utilisé FIN.MOIS pour décaler la date de début, que ce soit pour passer au mois suivant, au précédent, ou obtenir le dernier jour du mois.
@Ausecour Merci énormément, ton aide a vraiment été d'une très grande qualité. Je ne me suis pas juste contenter de tes formules mais j'ai bien essayé de les comprendre et je penses les avoirs comprises ! Ça fait tout de suite beaucoup plus sens !
J'aurais une dernière requête, je ne sais pas si je dois recréer un sujet sur le forum pour traiter cette demande. Je vais le faire ici et si il le faut je le ferrais avec plaisir si mon questionnement peu en aider plus d'un !
Désormais sur le fichier j'aimerais que à droite du petit tableau je puisse faire apparaître dans les menus déroulant le nom et le prénom des personnes concernant par le statut, bien évidemment qu'il s'actualise aussi lorsque que l'on change de mois.
Une fois de plus j'ai luté cette après-midi à l'aide de tutoriel (Forum et YouTube), s'en parvenir à trouver la solution... J'ai essayé de repartir de la formule que m'a transmis @Ausecour en l'adaptant mais rien à faire j'avais constamment des messages d'erreur et beaucoup celui-ci "propagation".
Si vous savez me renseigner ? Et aussi où puis-je prendre des cours d'excel (payant) ? (Que ce soit un peu mon tour ensuite d'aider les personnes de se forum ahah)
Bonjour,
J'ai tenté d'utiliser la fonction proposée par Excel qui s'appelle FILTRE() mais sans succès, je n'ai pas trouvé commet charger son résultat dans les listes déroulantes sans passer par de la magouille en validation de données...
La seule solution qu'il me restait en tête était donc de passer par du VBA, voici le résultat:
Fonction qui permet d'obtenir une liste de prénoms répondants aux critères pour alimenter les listes:
Function getNomPrenom(maDate As Date, colStatut As Integer) As Variant
Dim colDateAjout As Integer, colNomPrenom As Integer
Dim tabSource As Variant, resultat As Variant
Dim NomPrenom As New Collection
colDateAjout = 15
colNomPrenom = 8
tabSource = Sheets("Feuil1").Range("A1").CurrentRegion
For lig = 2 To UBound(tabSource, 1)
If tabSource(lig, colStatut) = True And tabSource(lig, colDateAjout) >= maDate And _
tabSource(lig, colDateAjout) <= DateSerial(Year(maDate), Month(maDate) + 1, 1) - 1 Then
NomPrenom.Add lig
End If
Next lig
If NomPrenom.Count > 0 Then
ReDim resultat(1 To NomPrenom.Count, 1 To 1)
For i = 1 To NomPrenom.Count
resultat(i, 1) = tabSource(NomPrenom(i), colNomPrenom)
Next i
Else
resultat = ""
End If
getNomPrenom = resultat
End Function
Procédure qui utilise cette fonction pour charger les informations dans les listes:
Private Sub majComboBox(Cbx As MSForms.ComboBox, col As Integer)
Dim liste As Variant
liste = getNomPrenom(Range("O6"), col)
Cbx.Clear
Cbx = ""
If IsArray(liste) Then
Cbx.List = liste
End If
End Sub
Les procédures des 3 listes qui se lancent quand elle ont le focus (quand on sélectionne la liste donc):
Private Sub ComboBox_embauche_GotFocus()
majComboBox ComboBox_embauche, 3
End Sub
Private Sub ComboBox_nonRetenue_GotFocus()
majComboBox ComboBox_nonRetenue, 2
End Sub
Private Sub ComboBox_retenue_GotFocus()
majComboBox ComboBox_retenue, 1
End Sub
Merci beaucoup une fois de plus !