Compter série de 3 valeurs identique

Bonjour,

Je suis accompagnateur de perzsonnes handicapés dans un Foyer d'Hébergement.

Avec l'équipe d'accompagnateurs, nous gérons les présences des résidents et j'ai donc créé un fichier excel.

Nous devons remettre à la compta des comptes précis dont les calculs sont complexes et que nous faisons à la main.

Je voudrais savoir si vous pourriez svp nous aider à l'informatiser.

Voici ci-joint un fichier de planning de résidents feuille => "stats repas", je voudrais par exemple pour le résident SARICA :

Compter le nombre de série de 3 cellules ou la valeur est 0 (midi => soir => nuit => midi => ect.) par mois donc par exemple pour février du 1er février au 28 février.

Donc pour le résident SARICA, compter le nombre de série ou la valeur est 0 dans les cellules :

AR59 - AR60 - AR 61 (1er fev) AS59 - AS60 - AS61 (2 fev) ... BS59 - BS60 - BS61 (28 fev)

Donc sur le fichier joint pour le resident SARICA 8 serie de 3 valeur 0 :

1ere série : 1er fev soir + 1er fev nui + 2 fev midi

2e série : 2 fev soir + 2 fev nuit + 3 fev midi

Je voudrais afficher le total de série (8) dans un commentaire dans la cellule BS61 (28 fev nuit)

et/ou un commentaire dans la cellule de la fin d'une série de 3 donc par exemple dans AS59 (1er fev midi) - AT59 (3 fev midi) etc.

En fait je dois recopier dans la feuille "Nathalie" 1 si il y 1 série de 3 valeurs égale à 0 sinon 0.

Ces calculs devront ensuite être reproduits pour chaque mois et pour chaque résident.

Cela me semble un peu complexe.

Pensez-vous que c'est possible ?

Je vous remercie beaucoup de votre aide

Cordialement

Hello,

J'ajouterai une 63ème ligne à l'onglet stats repas avec la formule suivante : =SI(SOMME(AR59:AR61)=0;1;0). Recopie de la formule vers la droite. Dans la cellule BS64, je ferai la somme.

Pour la seconde partie, je ne sais pas faire afficher le résultat dans un commentaire.

Bonsoir,

Ce n'est pas ce que je recherche, Je corrige mon explication de base :

Voici ci-joint un fichier de planning de résidents (feuille => "stats repas"), je voudrais par exemple pour le résident SARICA :

Compter le nombre de série de 3 cellules ou la valeur est 0 (midi => soir => nuit => midi => ect.) par mois donc par exemple pour février du 1er février au 28 février. (changement de colonne après nuit)

Donc pour le résident SARICA (ligne 59 à 61), compter le nombre de série de 3 valeurs égale à 0 dans les cellules :

AR59 - AR60 - AR 61 (1er fev) AS59 - AS60 - AS61 (2 fev) ... BS59 - BS60 - BS61 (28 fev)

Donc sur le fichier joint pour le resident SARICA 8 serie de 3 valeur égale à 0 (mais pas forcément sur la même colonne) :

1ere série : 1er fev soir(AR60) + 1er fev nuit(AR61) + 2 fev midi(AS59) => DONC indiquer 0 dans D6 dans la feuille "FEVRIER 2019" ET 0 dans un commentaire dans la cellule AS59 de la feuille active "Stats repas"

2e série : 2 fev soir(AS60) + 2 fev nuit(AS61) + 3 fev midi(AT59) => DONC indiquer 0 dans F6 dans la feuille "FEVRIER 2019" ET 0 dans un commentaire de la cellule AT59 de la feuille active "Stats repas"

En fait je dois recopier dans la feuille "FEVRIER 2019" 0 le jour de la fin d'une série de 3 valeurs égale à 0 sinon 1. (=> cf feuille "FREVRIER 2019")

Ces calculs devront ensuite être reproduits pour chaque mois et pour chaque résident.

Cela me semble un peu complexe.

Pensez-vous que c'est possible ?

Je vous remercie beaucoup de votre aide

Cordialement

Salut sylvainpyc,

Bon Dieu, qu'il va être dur à faire évoluer, ce fichier! Bon courage!

  • clic dans 'Stats repas' [B55] : mise à jour des commentaires ;
  • clic dans 'FEVRIER 2019' (ou toute autre feuille se terminant par 4 chiffres, supposée donc être une feuille de récapitulation) [A2] : mise à jour des stats pour chaque résident ;
  • j'ai changé la formule à rallonge en 'FEVRIER 2019' [CH6:CH22] : même calcul = addition 1 colonne sur 2.

La suite, demain...

If Not Intersect(Target, Range("B55")) Is Nothing Then
    For x = 56 To 182 Step 9
        For y = Range("C1").Resize(Rows.Count, Columns.Count - 2).SpecialCells(xlCellTypeVisible).Column To Cells(55, Columns.Count).End(xlToLeft).Column
            Call SetComment(x, y)
        Next
    Next
End If

A+

8activitesv2.xlsm (807.74 Ko)

Salut sylvainpyc,

la suite :

  • "*" si commentaire dans les cellules "bleues" ;
  • commentaire avec total "triple 0" dans cellules "midi".

A ce propos des "triple 0", dans les feuilles 'XXX 201x" colonne [CH], est-ce le total des "triple 0" ou la somme des "1" que tu souhaites ?

Dans le doute, comme tu as l'air de faire un foin de ces "triple 0", j'ai modifié la formule pour afficher le total des "triple 0".

=31-SOMME(SI(MOD(COLONNE(B6:BK6);2)=0;B6:BK6))

Retirer 31 - si c'est l'inverse mais il faudra alors modifier le code ailleurs pour afficher le bon total "triple 0" dans les commentaires-cellules.

Dans 'ThisWorbook' Private Sub Workbook_SheetSelectionChange()

.Comment.Text Str(31 - Sh.Range("CH" & x).Value)

Dans 'Stats repas' Public Sub StatsPrésence()

.Comment.Text Str(31 - Sheets(x).Range("CH" & rCel.Row).Value)

A+

4activitesv3.xlsm (775.91 Ko)

pourquoi ca zoom quand je clic droit ou gauche sur la ligne bleu ? je voudrais enlever cette option pour tout le fichier svp.

Ca ne rend pas le résultat desiré dans la feuille FEVRIER 2019

Je voudrais que dans la feuille FEVRIER2019 soit indiqué 0 si 3 valeurs différentes de 1 et de "C" se suivent et ainsi de suite

"C" signifie que le résident mange pas le repas du Foyer mais mange dans son studio et est donc présent au Foyer donc vaut 1

une autre lettre ou chaine de caractère signifie qu'il mange à l'extérieur et est donc absent du foyer donc vaut 0

Je voudrais cela :

  • 0 le 2/02 : 0 le 1/2 soir + 0 le 1/2 nuit + 0 le 2/2 midi ("d" donc <> de 1 et de "C")
  • 0 le 3/02 : 0 le 2/2 soir + 0 le 2/2 nuit + 0 le 3/2 midi
  • 0 le 4/02 : 0 le 4/2 midi ("d" donc <> de 1 et de "C") + 0 le 4/2 soir + 0 le 4/2 nuit
  • 0 le 9/02 : 0 le 8/2 soir + 0 le 8/2 nuit + 0 le 9/2 midi
  • 0 le 10/02 : 0 le 9/2 soir + 0 le 9/2 nuit + 0 le 10/2 midi
  • 0 le 12/02 : 0 le 11/2 nuit + 0 le 12/2 midi ("s" donc <> de 1 et de "C") + 0 le 12/2 soir

Je vous remercie de votre aide

Cordialement

4activitesv3.xlsm (771.73 Ko)

Salut sylvainpyc,

le zoom n'est pas de moi : il était déjà programmé!

Je regarde ça dès que je peux!

A+

Le zoom c'était moi mais seulement sur b55 et j'en ai plus besoin.

L'* ne peut pas apparaître des qu'on insère un commentaire? Seulement quand on clic sur b55/

Merci

Je me disais bien que tu m'en ferais la remarque tôt ou tard !

Je l'avais repéré : ce sera dans le paquet de corrections !

A+

Bonsoir,

Je n'ai en fait plus besoin des calculs concernant les 3 valeurs égale à 0

Mais je n'arrive pas à enlever de votre code ce qui concerne ces calculs.

enlever cette partie et ce qui va avec si possible

sSheet = Choose(Month(Cells(55, iTCol)), "JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE") & _
        Str(Year(Cells(55, iTCol)))
iJrs = Choose(Month(Cells(55, iTCol)), 31, IIf(Month(Cells(55, iTCol)) Mod 4 > 0, 28, 29), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

J'ai surtout besoin de l'* quand il y a un commentaire et mettre à jour les commentaires quand on clique sur b55

Voici la copie du fichier que j'utilise et ou je voudrais rajouter votre code concernant les commentaires :

mon code actuel est celui la

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim sData$, iRow%, iIdx8%, iIdx0%
'
iRow = Target.Row
If Target.Count > 1 Or iRow < 56 Or Target.Column > 390 Then Exit Sub
If iRow Mod 9 <> 8 And iRow Mod 9 <> 0 Then Exit Sub
'
Application.EnableEvents = False
'
With IIf(iRow Mod 9 = 8, Target.Offset(-6), Target.Offset(-7))
    .ClearComments
    iIdx8 = IIf(iRow Mod 9 = 8, 0, -1)
    iIdx0 = IIf(iRow Mod 9 = 8, 1, 0)
    If Target.Offset(iIdx8) <> "" Then sData = LCase(Target.Offset(iIdx8))
    If Target.Offset(iIdx8) <> "" Or Target.Offset(iIdx0) <> "" Then sData = sData & "-"
    If Target.Offset(iIdx0) <> "" Then sData = sData & UCase(Target.Offset(iIdx0)) & " *"
    If sData <> "" Then
        .AddComment
        .Comment.Text sData
        .Comment.Shape.TextFrame.AutoSize = True
        .Comment.Visible = True
    End If
End With
'
Application.EnableEvents = True
'
End Sub

je voudrais soit integrer cette partie de votre code :

If Not Cells(iTRow + 2, iTCol).Comment Is Nothing Then sData = sData & IIf(sData = "", "*", " *")

ou integrer votre procédure Public Sub SetComment sans les calculs des trois 0 consecutifs et les mois ?

Je sais pas si c'est clair ce que j'écris

Je vous remercie de votre aide

Cordialement

6classeur1.xlsm (734.62 Ko)

Je regarde ça ce soir encore...

A+

Salut sylvainpyc,

voici ton fichier avec la suppression du calcul des "000".

"Présence FH"

- la liste de validation? Tu gardes ou tu jettes ?

- pour la reconnaissance de l'encodage d'un commentaire en ligne "bleue", je dois intégrer mon code à la Sub Worksheet_BeforeRightClick,... et je n'y comprends rien!

J'aurais besoin de comprendre quelles lignes tu veux cacher ou montrer selon les circonstances du clic-droit.

A+

9activitesv4.xlsm (756.10 Ko)

Bonjour,

Concernant le clic droit sur la ligne "bleue" soit pour SARICA la ligne 58

Quand je clic droit => les lignes 56,57,58,62 et 63 s'affichent

(les lignes 62 et 63 informe de l'absence d'un résident au repas du Foyer d'Hébergement :

"C" indique que le résident est absent au repas mais mange dans son studio donc présent au FH,

tout autre caractère ou chaine de caractères indique que le résident est absent au repas et du FH, il mange à l'extérieur)

Au prochain clic droit => seules les lignes 56 et 57 s'affichent :

mise en forme de base à l'affichage pour une meilleure lecture du planning des résidents et pour l'impression

d'où les commentaires dans la ligne 56 pour informer qu'il y a un commentaire en ligne 58 et des infos concernant les repas en lignes 62 et 63 qui sont masquées :

la ligne 56 indique si le résident travaille

)

la ligne 57 est la même que la 56

sauf qu'on saisi "x" dans la ligne "bleue" pour informer que le résident est présent au Foyer d'Hébergement un jour ou il ne travaille pas alors "FH" en rouge sur fond jaune est ajouté sur la ligne 57. Cellule blanche => il rentre en famille

les lignes 59, 60 et 61 sont toujours masquées, ce sont des lignes de calculs de présences aux repas et aux Foyer d'Hébergement pour d'autres tableaux. => mes collègues ne doivent en aucun cas les voir pour ne pas supprimer les formules et inutile pour eux.

la ligne 64 est toujours masquée, ce sont les dates (ligne surement inutile mais utilisée dans mes formules).

Votre code fonctionne bien, les infos des lignes 62 et 63 s'affichent bien dans le commentaire. la mise en forme du commentaire est parfaite.

L'* s'affiche bien dans le commentaire seulement si je clique sur B55.

Qu'est-ce que vous entendez par liste de validation ?

Je vous remercie

Bonjour,

Serait-il possible svp en cliquant sur B55 de replacer tous les commentaires de la feuille et pas seulement les commentaires de la 1ère ligne de chaque résident ?

J'ai créé un bouton bascule pour afficher en plus les lignes comprenant les formules (expliquées dans le message précédent => pour contrôle pour la secrétaire), serait-il possible d'insérer le code pour replacer les commentaires dans le code du bouton à bascule ?

Je vous remercie

Cordialement

3classeur1b.xlsm (738.91 Ko)

Salut sylvainpyc,

désolé pour tout ce temps!

Comme d'autres l'ont déjà lu à l'occasion, je commence de gros travaux de rénovation pour ma future maison ... sans compter toutes ces sirènes excelliennes qui m'attirent loin de mes devoirs!

J'ai intégré ici un petit Userform pour créer tes commentaires-cellules en ligne bleue ce qui permet de calculer immédiatement le commentaire-résumé avec ou sans * : pour afficher l'Userform, clic-droit sur la cellule voulue en ligne bleue.

Trois boutons agrémentent l'Userform :

  • un "V" vert pour confirmer les changements. Si le texte a été effacé, le commentaire est éliminé ;
  • une croix rouge pour éliminer le commentaire ;
  • une sortie bleue pour sortir sans tenir compte des éventuelles modifications.

J'ai recodé l'affichage des 3 lignes nécessaires : j'espère que ce sera bon pour toi!

Même principe : clic-droit en [B:B] pour afficher ou cacher.

iRow = target.Row
iMod9 = iRow Mod 9
If Not Intersect(target, Range("B56:B182")) Is Nothing And (target.Row Mod 9) Mod 2 = 0 Then
    iRow = IIf(iMod9 = 2, iRow, iRow - IIf(iMod9 = 0, 7, iMod9 - 2))
    For x = 1 To 3
        Rows(iRow + Choose(x, 2, 6, 7)).Hidden = IIf(Rows(iRow + Choose(x, 2, 6, 7)).Hidden = True, False, True)
    Next
End If

La liste de validation s'allume quand tu cliques sur la ligne bleue et te permet de choisir une des valeurs que j'ai trouvées dans tes formules (a, p, x). Le "-" signifie "rien" si tu veux effacer la valeur présente.

Je n'ai pas eu accès au code de replacement des commentaires.

A+

11activitesv4.xlsm (796.32 Ko)
Rechercher des sujets similaires à "compter serie valeurs identique"