Programmation fonction

Résolu/Fermé
melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015 - 19 oct. 2014 à 19:16
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 - 21 avril 2015 à 19:02
Bonjour,

Je suis dans l'impasse vis à vis de mon fichier...

Je fais partie d'une association sportive qui souhaite s'assurer du respect des règles d'inscription. Pour faire simple, nous pointons tous nos cours, 14 au total sur la semaine et nous avons 3 formules d'abonnement (1 cour/semaine, 2 cours/semaine et 3 cours et +/semaine).

Je souhaiterais faire un tableau qui calcul tout seul le nombre de venue par semaine de chaque adhérent.

J'ai donc mon fichier récapitulatif et 14 listes de pointage.

en gros la formule serait littérairement parlant : combien de fois "N° d'adhérent" est venu pendant la S37 (sachant qu'il faut que la formule prenne les données dans 14 listes de pointage).

J'espère que quelqu'un pourra d'aider. Si besoin de ferais des captures d'écran de mes fichiers.

Mélanie
A voir également:

18 réponses

melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015
19 oct. 2014 à 19:18
J'ai juste oublier. Il faudrait aussi que la réponse soit en noir si respect des règles et en rouge si non respect (sachant que j'ai fait un code couleur pour les règles d'inscription (N° d'adhérent en rose pour 1 cour, en bleu pour 2 cours et en vert pour 3 cours et +
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
19 oct. 2014 à 19:41
Non, Mélanie ; pas de captures d'écran ; il nous faut les fichiers Excel (quitte à ce que tu utilises une copie avec modification des noms propres).
Va dans https://www.cjoint.com/ pour créer le lien, que tu reviendras coller ici.
0
melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015
19 oct. 2014 à 19:50
voilà le lien : http://cjoint.com/data/0Jtt1Uz4P0x.htm

pour la confidentialité, j'ai changer les noms de famille, j'ai mis dupont pour tous. De toute façon, c'est le numéro d'adhérent qui est propre à chaque personne.

seul bémol, pour l'instant certaine personne n'ont pas encore de numéro, que je rajouterais dès que je les auraient !
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
19 oct. 2014 à 21:34
Bonsoir

Un essai via vba
https://www.cjoint.com/?3JtvK7AQPxl
... à tester bien sûr

Et salut à Raymond en passant

Cdlmnt
0
melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015
19 oct. 2014 à 22:40
Bonsoir,

j'ai eu du mal à comprendre car il y avait des erreurs dans les tableaux mais c'était à cause des noms (personnes non inscrites n=et qui figuraient dans les listing).

J'ai donc supprimé ces personnes là mais j'ai fait une bétise sur 2 listes de pointage : lundi 9H15 et mardi 19H25 qui n'ont plus la formule et donc font tout beuger.....

Voici le lien du nouveau fichier : http://cjoint.com/data3/3JtwSqJ6cPp.htm

J'ai par contre une dernière question, je n'ai pas encore fait les listings pour les prochains trimestres, il faudra refaire une programmation pour le reste ?
0

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

Posez votre question
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
20 oct. 2014 à 01:09
Salut à toi, ccm81. Je vais devoir me retirer, à cause de mon incurie en VBA.
-------------------------------------------------------
Bonsoir, Mélanie. Tu constates qu'il est impossible de travailler sur des bases inexactes ou incomplètes : c'est la toute première démarche, quand on veut manipuler une base de données et faire des tris, des filtres, des recherches, des regroupements, des sous-totaux ... il faut que les données soient fiables.
Chez toi, tout repose sur le N° d'adhérent ; on ne pouvait donc rien tant que la colonne B n'était pas renseignée. Dans la pratique, quand ce N° n'est pas encore attribué, tu mets un N° provisoire, par exemple commençant par un P.

Tu as un onglet par jour, donc 14 par semaine ; mais ta feuille récapitulative prévoit 3 tableaux pour des périodes diverses ; tu as donc l'intention de créer combien d'onglets dans un fichier ?
0
melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015
20 oct. 2014 à 06:50
Bonjour,

Je travaille aujourd'hui et je n'aurais malheureusement pas le temps de me pencher sur le fichier avant ce soir. Je vais créer tous les onglets pour chaque fichier, ce qui sera plus simple (car en réalité, il y a un onglet par semaine sur toute l'année sportive).

Pour les numéros provisoires, c'est ce que j'ai fait en commançant à 25000.

En tout cas merci de votre aide. Je vous envoi le fichier ce soir.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
20 oct. 2014 à 12:02
1. J'ai donc supprimé ces personnes là mais j'ai fait une bêtise sur 2 listes de pointage : lundi 9H15 et mardi 19H25 qui n'ont plus la formule et donc font tout beuger.....
Il suffisait de mettre à jour la formule en colonne C
https://www.cjoint.com/?3Jul7zp6llF

2. J'ai par contre une dernière question, je n'ai pas encore fait les listings pour les prochains trimestres, il faudra refaire une programmation pour le reste ?
Il faut voir comment ça va se présenter

RQ. empruntée à Raymond
il est impossible de travailler sur des bases inexactes ou incomplètes : c'est la toute première démarche, quand on veut manipuler une base de données et faire des tris, des filtres, des recherches, des regroupements, des sous-totaux ... il faut que les données soient fiables.

Bonne journée
0
melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015
20 oct. 2014 à 19:23
J'ai mis à jour le fichier mais les calculs ne se font pas...

Voici le lien : http://cjoint.com/data3/3JutCbavCWI.htm

Je suis perdue... Est-ce que le fait de changer d'ordinateur peut faire beuger le fichier ?

Je voulais aussi avoir votre avis pour la suite de l'année, est-ce que je créé 2 nouveau onglet pour chaque jour (1 onglet par trimestre) ou je fais mes 3 tableaux dans le même onglet ?

Et si je fais dans le même onglet, il faut que je colle le nouveau tableau sur le côté du 1er ou en dessous ?

Merci
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
20 oct. 2014 à 20:14
1. J'ai mis à jour le fichier mais les calculs ne se font pas...
Si
https://www.cjoint.com/?3JuujRaNP5o
As tu tiré la formule dans toute la plage concernée
RQ. Le calcul simultané les 3000 formules prend un peu de temps

2. Est-ce que le fait de changer d'ordinateur peut faire beuger le fichier
Non
As tu accepté l'ouverture/l'exécution des macros (pour excel 2003 Outils/Macros/Securité et choisir niveau moyen puis quitter Excel et le relancer - pour autre version, je ne sais pas)

3. Et si je fais dans le mêe onglet, il faut que je colle le nouveau tableau sur le côté du 1er ou en dessous ?
Sur le côté et à y être toujours à partir de la même colonne dans toutes les feuilles. Les entêtes Sxx doivent être toutes différentes en ligne 3 pour les 3 trimestres comme dans la feuille Recap. Il faudra quand même modifier la macro

Cdlmnt
0
melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015
20 oct. 2014 à 22:59
Bonsoir,

Après avoir passé plusieurs heures j'ai enfin fini mon fichier pour l'année complète ! Je vous laisse le lien car je ne sais pas comment modifier la macro... Et la formule ne marche pas... Je ne suis vraiment pas douée...

Le voilà : http://cjoint.com/data3/3JuxdAF9RCg.htm

J'ai aussi une petite demande. Est-il possible de figer les colonnes A, B, C et D sur tous les onglets sauf BABY 14H15, BABY 15H05 et ZUMBA KIDS (sur ces 3 onglets, il ne faut rien faire, le total est simple car un seul cours/Semaine), comme vous l'avez fait sur l'onglet RECAP 2014-2015.

Merci de votre aide. Cdlt.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
21 oct. 2014 à 18:56
Comme tu as décalé la ligne des n° de semaine de la ligne 3 à la ligne 4, il te suffisait de changer la valeur de la constante lis en début de code
Les volets sont figés
A tester bien sûr!
https://www.cjoint.com/?3Jvs40TAhFm

Cordialement
0
melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015
22 oct. 2014 à 22:20
Merci pour tout !!!

Le fichier marche très bien !!

pouvez-vous juste me "traduire" le module 1. Au cas où j'ai un soucis, je pourrais peut-être me débrouiller si celui-ci est traduit !

cordialement
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
23 oct. 2014 à 10:19
Option Explicit

Public Const shdeb = 2    ' premier numero feuilles détail
Public Const shfin = 18   ' dernier numéro feuilles détail
Public Const conum = 2    ' colonne n° feuilles détail
Public Const lis = 4      ' ligne de tête feuilles détail

' num = numero, s = semaine
Public Function TotS(num, s)
Dim sh As Long, ts As Long, ob As Object, li As Long, co As Long, plage As Range
' initialisation de ts (total cumulé)
ts = 0
' pour chaque numéro de feuille depuis shdeb jusqu'à shfin
For sh = shdeb To shfin
  'MsgBox sh & "-" & Sheets(sh).Name
  ' plage où on va rechercher le numero (colonne conum)
  Set plage = Sheets(sh).Columns(conum)
  ' recherche du numero dans la plage
  Set ob = plage.Find(num, , , xlWhole)
  ' si num trouvé
  If Not ob Is Nothing Then
    ' ligne où num à été trouvé
    li = ob.Row
    ' plage ^ù on va rechercher recherche la semaine
    Set plage = Sheets(sh).Rows(lis)
    ' recherche de la semaine
    Set ob = plage.Find(s, , , xlWhole)
    ' si semaine trouvée
    If Not ob Is Nothing Then
      ' colonne où s à été trouvée
      co = ob.Column
      ' si La cellule (li,co) est numérique on l'ajoute au total
      If IsNumeric(Sheets(sh).Cells(li, co)) Then ts = ts + Sheets(sh).Cells(li, co)
      'MsgBox ts
    End If
  End If
Next sh
' si ts=0 on renvoie "" sinon on renvoie ts
If ts = 0 Then
  TotS = ""
Else
  TotS = ts
End If
End Function


Bonne journée
0
melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015
27 nov. 2014 à 19:44
Merci pour votre aide sur ce fichier. Il marchait super jusqu'à aujourd'hui.

Explication : J'ai supprimé3 feuilles de calcul qui ne servait pas pour mon fichier et depuis, les calculs ne se font plus...

Nous avons la réunion demain et j'aurais besoin du fichier le plus rapidement possible... si quelqu'un peut m'aider !!!

voici le lien du fichier : http://www.cjoint.com/data3/3KBtWIlUgFi.htm

Merci
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
27 nov. 2014 à 22:15
Difficile de se remettre dans le contexte
A première vue, tu as supprimé des feuilles, donc leur nombre a changé
Dans Module 1 essaies de changer la valeur de shfin (remplaces 18 par 15)
puis dans la feuille Recap tu vas en E12, tu valides la formule
Public Const shdeb = 2    ' premier numero feuilles détail
Public Const shfin = 15 ' dernier numéro feuilles détail
Public Const conum = 2 ' colonne n° feuilles détail
Public Const lis = 4 ' ligne de tête feuilles détail


Bon courage
0
melan35 Messages postés 11 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 20 mars 2015
28 nov. 2014 à 07:17
Fichier essayé ce matin même après avoir changé le nombre de pages. Cela fonctionne. Merci pour votre rapidité, je suis "sauvée" pour ma réunion !
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 28/11/2014 à 10:03
De rien
Il faut faire très attention, la macro est prévue pour une configuration, si tu la modifies, il faudra certainement agir sur le code
Une modification à apporter au cas où voudrais à nouveau ajouter/supprimer une feuille (SAUF la feuille Recap) : lignes soulignées

Public Const shdeb = 2    ' premier numero feuilles détail
' Public Const shfin = 15 ' dernier numéro feuilles détail
Public Const conum = 2 ' colonne n° feuilles détail
Public Const lis = 4 ' ligne de tête feuilles détail

Public Function TotS(num, s)
Dim sh As Long, ts As Long, ob As Object, li As Long, co As Long, plage As Range
Dim shfin As Long
ts = 0
shfin = Sheets.Count
For sh = shdeb To shfin

Bonne réunion
0
mel35 Messages postés 2 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 20 avril 2015
19 avril 2015 à 22:40
Bonsoir,

J'ai un problème toujours avec mon fichier, j'ai vérifier chacune des feuilles de calcul mais je ne trouve pas l'erreur...

Certaine valeur pour la S2 à S3 ne veulent pas s'afficher dans le récapitulatif...

Quelqu'un pourrait-il m'aider ?

Voici le lien pour le fichier : http://www.cjoint.com/data/0Dtw01lLAB7.htm

Merci d'avance
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 20/04/2015 à 14:38
Tes en têtes (S2 et S3 en Y4 et Z4) dans toutes tes feuilles, sont suivies d'un espace, essaies en le supprimant.
RQ. la constante shfin vaut 13 alors qu'il y a 14 feuilles, est ce normal. A ce sujet, tu n'as pas tenu compte de la dernière remarque qui permet de définir la valeur de shfin dans la procedure TotS

Bonne journée
0
mel35 Messages postés 2 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 20 avril 2015
20 avril 2015 à 20:30
Merci, j'ai supprimé tous les espaces après les S...

Par contre, je ne comprend pas votre remarque par rapport à la valeur de shfin dans la procédure TotS...

Merci pour votre aide !
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
21 avril 2015 à 19:02
Tu reprends le post #19
1. Tu supprimes la ligne souligcée dans les constantes
2. Tu ajoutes les deux lignes soulignées dans le corps de la fonction
A l'avenir, si tu ajoutes une feuille date, tu n'auras plus besoin de mettre la constante shfin à jour

Bonne fin de journée
0