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
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
A voir également:
- Nb.si et recherchev
- Nb.si en anglais - Guide
- Nb.si plusieurs plages ✓ - Forum Excel
- Nb.si couleur - Guide
- Recherchev et rechercheh combiné ✓ - Forum Excel
- Recherchev texte - Forum Excel
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 310
22 déc. 2011 à 09:35
22 déc. 2011 à 09:35
Bonjour
déjà pour le 1°
nb.si(laplage;"*"&A1&"*")
déjà pour le 1°
nb.si(laplage;"*"&A1&"*")
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
Modifié par eriiic le 22/12/2011 à 09:57
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
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
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
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
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
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
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
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
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
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 ?
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 ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 22/12/2011 à 12:28
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
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
22 déc. 2011 à 12:34
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
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
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
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
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
22 déc. 2011 à 16:05
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
ou appeler la cellule C3 de janvier
Ils vont te regretter à ce boulot! :o)
M. ^13 pour la suite de ta carrière
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
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
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
23 déc. 2011 à 10:12
23 déc. 2011 à 10:12
bonjour
dans ta macro de recopie utilise le collage spécial "valeurs"
dans ta macro de recopie utilise le collage spécial "valeurs"
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
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.
Merci du conseil Michel_M.
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
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.
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.
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
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.
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.