NB.SI + RechercheV + Liste de choix Excel 2k7

Résolu/Fermé
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011 - 22 déc. 2011 à 09:31
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011 - 23 déc. 2011 à 15:49
Bonjour à tous,

J'ai 3 soucis à résoudre sur ce classeur.

1°) Sur la feuille "Stats" :
- Dans la Cellule C5 :
J'ai la formule suivante : =NB.SI(C62:G219;"*Brigitte*")
Ce que j'aimerai c'est qu'à la place de Brigitte, j'ai =NB.SI(C62:G219;"*Contenu de la cellule B5*")
Or si je met =NB.SI(C62:G219;"*B5*"), c'est faux car Excel va rechercher la valeur B5 et non ce que contient B5. Et la formule =NB.SI(C62:G219;"B5") n'est pas juste non plus, car parfois il n'y aura pas QUE Brigitte dans les cellules.

2°) Sur la feuille "Stats" :
- Dans la cellule C62 et suivantes :
J'aimerai qu'ici soit centralisé toutes les valeurs contenues dans les 12 Feuilles suivantes :
Je ne peux pas faire un simple =Janv!C4 car il se peut que parfois avec le chevauchement des semaines, il y est des semaines qui se retrouvent 2 fois, ce qui faussera les Stats.
J'avais pensé à un RechercheV mais je ne sais pas le faire sur plusieurs feuilles et à cause de la fusion de la 1ère cellule de référence, j'ai des valeurs fausses.

3°) Sur les Feuilles des Mois :
- Sur la plage C4 à G5 :
J'ai bien réussi à créer une liste de choix avec le gestionnaire de noms.
Mais je n'ai pas réussi à suivre la procédure décrite ici :
https://www.commentcamarche.net/applis-sites/bureautique/549-creer-des-listes-deroulantes-dans-excel/
J'aimerai que lorsque je tape le début du prénom, la suite me soit proposé comme c'est indiqué sur la page sitée.

Le fichier n'est bien sur pas terminé au niveau de la mise en forme, j'attends d'avoir d'abord des formules justes.

Merci d'avance à tous pour votre aide.

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

MikeThe7.



6 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
22 déc. 2011 à 09:35
Bonjour

déjà pour le 1°

nb.si(laplage;"*"&A1&"*")

0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 22/12/2011 à 09:57
Bonjour,

Un début de réponse :

1)=NB.SI(C$62:C$219;"*" & $B5 & "*")
à recopier vers la droite et vers le bas.

2) pour simplifier il faudrait qu'une semaine appartienne à 1 seul mois.
Ou bien faire l'inverse : saisir en feuille stat et remplir les mois à partir de cette feuille

3) plus de temps pour chercher mais est-ce que ça vaut le coup pour une liste de 20 items ?
Ce que je sais c'est qu'il faut appliquer la procédure pas à pas, tranquillement, sans rien sauter.
Chaque ligne, chaque mot compte.
Et si tu disais à partir d'où tu buttes ça faciliterait...

eric
0
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011
22 déc. 2011 à 10:34
Bonjour à vous 2 et merci pour vos réponses rapides.

1°) Résolu

2°) C'est justement là mon problème, c'est qu'une semaine peut se retrouver sur un mois ET sur le suivant en reprenant les mêmes nom, ce qui faussera les Stats. C'est pour cela que j'ai pensé à faire un tableau récapitulatif sur la feuille "Stats" pour éviter cela.
Ce que je voudrais c'est la reprise des informations sur le tableau en bas de la feuille "Stats".
Si la semaine 5 par exemple est sur 2 mois, cela ne posera pas de problème vu que les informations sur cette semaine sera répertoriée qu'une seule fois dans le tableau "général".

3°) Dans l'exemple de GBinforme, il y a 2 colonnes et les formules "DECALER" se basent sur 2 colonnes alors que moi, je n'en ai qu'une seule. Je n'ai pas réussi à adapter la procédure pour une seule Colonne.

MikeThe7
0
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011
22 déc. 2011 à 11:36
@ Eric :

En fait je viens de réfléchir à ta solution et c'est vraiment pas bête.
Il ne faudrait remplir que le tableau dans "Stats" et ensuite les feuilles des mois se rempliraient automatiquement par rapport au numéro de semaine dans la colonne B.

Je vais tenter de faire la formule, si j'y arrive... :).

MikeThe7
0
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011
Modifié par MikeThe7 le 22/12/2011 à 11:43
Et voilà toujours le même problème à cause de mes fusions en colonne B pour les Numéros de semaine.
J'ai fait la formule =RECHERCHEV(B3;Stats!B61:G219;2;0) et la valeur renvoyé est toujours la date alors que je voudrais avoir les 3 infos des 3 cellules différentes.
Il n'y a pas moyen de préciser la ligne ?
Est-ce que RechercheV est la meilleure solution dans ce cas précis ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 22/12/2011 à 12:28
Re, salut Eric ;-)

effectivement c'est + simple dans ce sens
tu sélectionnes les 12 mois pour travailler en 3D

pour le lundi 2 janvier matin

=INDEX(Stats!C$61:C$219;EQUIV(C15;Stats!C$61:C$219;0)+1)
et l'aprèsmidi
=INDEX(Stats!C$61:C$219;EQUIV(C$15;Stats!C$61:C$219;0)+2)

et tu tires vers la droite
et tu copies le bloc d'une semaine am-pm sur la semaine suivante

A moins que tu ne sois plus dans la boite l'année prochaine tu aurais peut-être intérêt à mettre l'année en cours dans une cellule nommée An_0 par exemple et appeler cette cellule. il y a des formules qui pourront te donner les dates du 1° lundi du mois et son numéro de semaine

dans chaque feuille mois tu trouves une cellule en dehors du tableau dans le quel tu mets le numéro de mois pour travailler en 3D
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
22 déc. 2011 à 12:34
par exemple N) de mois en K3
toujours en 3D
1° lundi du mois
=DATE(an_0;K3;1)-MOD(DATE(an_0;K3;-2);7)+6

semaine ISO du 1° lundi du mois
=ENT(MOD(ENT((C3-2)/7)+0,6;52+5/28))+1
0

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

Posez votre question
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011
22 déc. 2011 à 15:55
Un grand merci à Eriiic dont les compétences ne sont plus à démontrer.

Et sur ce coup un énorme MERCI à Michel_m pour la formule de l'index que je ne connaissais pas du tout.

J'ai adapté le tout ce qui donne un seul tableau à remplir pour la personne qui fera les plannings.

Sur la feuille de chaque mois la seule chose à faire est de taper le Numéro de la 1ère semaine et tout est repris automatiquement. RechercheV pour la date et INDEX pour les 2 lignes en dessous.

Sur la feuille "Stats", il suffit de renseigner la cellule C61 et tout le reste du tableau sera automatiquement rempli, ce qui lui permettra de réutiliser le tableau au fur et à mesure des années.

Je garde sous le coude tes formules sur le 1er lundi de chaque mois, ça pourra me resservir je pense.

Ce qui m'a fait sourire c'est quand tu as dit :
"A moins que tu ne sois plus dans la boite l'année prochaine tu aurais peut-être intérêt à mettre l'année en cours dans une cellule"
En fait je quitte mon poste dans 3 semaines pour un autre travail...

Tu as très bien intuité...

Je vais mettre tout cela au propre et je vous redis si j'éprouve encore des difficultés à fignoler cela.

Avec tous mes remerciements.

MikeThe7
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
22 déc. 2011 à 16:05
Dans la cellule C61 tu peux écrire la formule du 1° lundi que je t'ai passé
ou appeler la cellule C3 de janvier

Ils vont te regretter à ce boulot! :o)

M. ^13 pour la suite de ta carrière
0
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011
23 déc. 2011 à 09:38
Bonjour Michel_m

Je te remercie pour ton aide et une pensée également à eriiic qui m'a fortement aidé par le passé.

Le fichier est pleinement utilisable à présent, ce qui me laisse perplexe, c'est que sur la fiche de chaque mois, j'ai mis un bouton/macro qui copie la feuille vers un nouveau classeur pour n'envoyer QUE la fiche du mois. Après quelques tests, il s'avère que la personne qui reçoit la feuille seule peut modifier la semaine et voir apparaitre la semaine désirée. Le truc c'est que la mise à jour automatique des liens est désactivée... Ce n'est pas génant en soi, mais je ne comprend pas comment la feuille seule peut récupérer des données sur un classeur qui n'est pas sur son ordinateur.

En tout cas c'est mieux que cela fonctionne ainsi car autrement les fiches envoyées serait vides ou en erreur.

Et oui, ils commencent déjà à entrevoir ce que sera le travail sans moi, mais pas de regrets, s'ils m'avaient payé plus avec un minimum de reconnaissance, ils m'auraient gardé.

Merci pour tes encouragement et à bientôt.

Bonne continuation à tous.

MikeThe7
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 déc. 2011 à 10:12
bonjour

dans ta macro de recopie utilise le collage spécial "valeurs"
0
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011
23 déc. 2011 à 11:20
Alors cela je ne sais pas faire, car ma macro copie simplement toute la page vers un nouveau classeur. Je vais tenter de trouver ça avec l'enregistreur de macro pour me mettre sur la voie.

Merci du conseil Michel_M.
0
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011
Modifié par MikeThe7 le 23/12/2011 à 11:32
Petit problème, voici la macro créée avec l'enregistreur :

Sub test()
'
Sheets("Janv").Select
ActiveSheet.Unprotect
Sheets("Janv").Select
Sheets("Janv").Copy
Windows("PLANNING GED Stats.xlsm").Activate
Range("C3:G21").Select
Selection.Copy
Windows("Classeur3").Activate
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B3:B5").Select
Application.CutCopyMode = False
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Windows("PLANNING GED Stats.xlsm").Activate
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

En gras c'est la ligne qui risque fortement d'occasionner des plantages, car ce ne sera pas toujours le classeur3 ou classeur2 qui sera nommé lors de l'exportation de la page.

De plus si je copie tout le tableau j'ai un message d'erreur à cause des cellules fusionnées pour la colonne des semaines.

J'avoue que là, mes compétences en VBA sont limitées.
0
MikeThe7 Messages postés 45 Date d'inscription mardi 5 juillet 2011 Statut Membre Dernière intervention 23 décembre 2011
23 déc. 2011 à 15:49
Génial ton système Michel_m !

Voici la macro que j'utilise en suivant tes conseils :
Cells.Select
Selection.Copy
Range("B3:B5").Select
Workbooks.Add
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
Range("B1").Select

En plus c'est d'autant mieux que cette macro sert pour toutes les feuilles, peu importe le nom qu'elles ont. J'ai donc pu supprimé toutes les petites macros attribuées pour chaque mois.

Complètement fonctionnel, c'est propre et pratique, je pense que nous pouvons clore le sujet.

Un grand merci à tous les intervenants et à votre savoir-faire que vous partagez sans compter.

MikeThe7.
0