Nb.si

Bonjour à tous,

NB.SI c'est pas ce qu'il y a de plus compliqué à réaliser. Mais là j'ai un souci.

je vous joins l'exemple.

Je veux même aller un peu plus loin en réalisant en premier lieu ce résultat. par la suite je voudrai le faire avec un code dans une boite en donnant le résultat de la recherche dans cette boite

exp : =NB.SI(C10:S63;UU) le UU je désirerai le remplacer par "AA" par u système de InputBox et avoir le résultat.

Merci de votre compréhension ainsi que votre aide

Amicalement

Noel

16classeur2.zip (6.99 Ko)

Bonjour,

Hum, pas bien expliqué ton souci... c'est le paramètre UU dans ta formule en T9 que tu veux modifier ou simplement obtenir le résultat du NB.SI en T9 (donc sans la formule) ?

Bonjour à tous,

Bonjour Dan,

Malheureusement je sais ce que je veux mais il me semble difficile de m'expliquer.

Le résultat dans T9 ne m'intéresse aucunement. Ce résultat pourrait s'installer où je le désire. Ma principale préoccupation c'est d'avoir un résultat en changeant le paramètre par InpuBox.

Pour être plus explicite: c'est une plage d'adhérents pratiquant une activité oi plusieurs activités au sein de l'association avec un ou plusieurs animateurs. Cette plage 's'étendra sur un mois dès 7H00 du matin à 20H00 par tranche de 25 minutes. A ce stade je n'ai pas réfléchi combien de cellules qu'il me faudra il y aura un bon nombre. C'est pour cela que je voudrai qu'en entrant le nom de l'adhérent j'ai le nombre de fois qu'il a été présent dans le mois.

Pourquoi je choisi inputbox tout simplement pour ne pas entrer dans la formule pour changer le paramètre se serait fastidieux.

Peut-qu'une autre solution autre qu'InputBox pourrait faire l'affaire à savoir.

Merci de ta participation

Amicalement

Noel

-- Sam Mai 15, 2010 9:17 am --

Re,

Pour apporter de l'eau au moulin voici un bout de code que j'ai commencé

Sub nbsi()

Dim Adh As String, nb As String

Range("c10:s62").Select 'La plage de sélection

Adh = InputBox("Le nom de l'adhérent", , "Entrez le nom exacte de l'Adhérent") ' Le nom de l'adhérent

'trouver dans la sélection le nombre de "Adh" ayant participé aux activités.

'Range("t9") ou ailleur

'le nombre de "Adh" choisi ayant participé aux activités.

End Sub

Je bloque sur "nb" que je n'arrive pas à définir dans le paramètre

Merci d'avance

Amicalement

Noel

Bonjour Noël

Sub RechercheNbOccurence()
Dim Adh As String, nb As String
Range("c10:s62").Select 'La plage de sélection
Adh = InputBox("Le nom de l'adhérent", , "Entrez le nom exacte de l'Adhérent") ' Le nom de l'adhérent
Résultat = Application.CountIf(Range("C10:S63"), Adh)
MsgBox ("Le texte ValeurAChercher est présent : " & Résultat & " fois.")
End Sub

Cordialement

Re,

Bonjour Amadeus,

Je te remercie de ton aide ça marche.

Je voudrai si possible quand

MsgBox ("Le texte ValeurAChercher est présent : " & Résultat & " fois.") que le nbr de fois est égal 0, qu'il m'affiche le message suivant : "L'adhérent n'existe pas vérifier le nom exacte de l'adhérent".

@+

Amicalement

Noel

Bonjour,

pourquoi utiliser vba alors qu'il suffirait d'entrer votre critère de dénombrement dans une cellule et de placer cette adresse de cellule dans la fonction nb.si ? à première vue ça me semble beaucoup plus simple à réaliser...

nb.si(plage, cellule dans laquelle on tape le nom).

Pour un renvoi en cas de nom inconnu je préconise

Si (nb.si(plage, cellule dans laquelle on tape le nom)=0;'nom inconnu";nb.si(plage, cellule dans laquelle on tape le nom))

Je suis nouveau sur le forum et je n'ai peut être pas bien compris la question mais voilà mon idée en fichier joint

Bien à vous

Bonjour Noël

Tu peux modifier comme ceci (je pense)

Sub RechercheNbOccurence()
Dim Adh As String, nb As String
Range("c10:s62").Select 'La plage de sélection
Adh = InputBox("Le nom de l'adhérent", , "Entrez le nom exacte de l'Adhérent") ' Le nom de l'adhérent
Résultat = Application.CountIf(Range("C10:S63"), Adh)
If Résultat = 0 Then MsgBox ("Cet adhèrent n'existe pas, veuillez vérifier le nom!")
If Résultat <> 0 Then
MsgBox ("Le texte ValeurAChercher est présent : " & Résultat & " fois.")
End If
End Sub

Cordialement

Re,

Bonjour bemann,

Excellente réflexion. Tu as bien cerné ma demande.

C'est aussi une façon aussi d'arriver au résultat.

C'est vrai on se complique la vie "Claude disait "pourquoi faire simple quand on peut faire compliquer"

Je voulais passer par InputBox. Mais ta formule s bon à prendre

Je te remercie beaucoup de ton aide

@+

Bonjour Noel, forum,

C'est vrai on se complique la vie "Claude disait "pourquoi faire simple quand on peut faire compliquer"

Mon dicton dit exactement le contraire !

re-médite là-dessus

Bonne journée

Claude

Bonjour à tous,

Certainement que c'est le contraire de l'adage. Je suis moi même compliqué. Pour la suite de ce fil, un animateur peut prendre en charge n'importe quel adhérent, afin de permettre de trouver le nombre de fois qu'un Animateur a pris en charge un Adhérent, je procède comme suit :

exp AB sont les initiales de l'animateur qui sera suivi du nom de l'adhérent exp: AB-Noel, l'Animateur AB a pris en charge l'Adhérent Noel. Pour cela je m pose la question comment faire pour touver toujours dans ma plage de cellules le nombre de fois qu'un Animateur a animé.

Je pense que là ça devient un peut plus compliqué. Dans d'autres programmation je sais qu'en faisant ce type de recherche je mets : AB-"*" mais en excel je ne sais pas faire.

Quelqu'un pourrait-il m'aider?

Je profite pour remercier, bemann, Amadeus, Dan ainsi que Claude pour leur intervention dans la première partie de mon fil.

Avec mes remerciements anticipés.

Amicalement

Noel

Bonjour Noël

Le "AB*" fonctionne normalement comme dans le

=NB.SI(Plage;"AB*")

Cordialement

Bonjour,

si je comprends toujours bien les demandes sur cette nb.si, sachez que nb.si est tout à fait capable de gérer le caractère joker "*". . Attention dans ce cas la juxtaposition de la valeur et du caractère joker doit se faire avec un opérateur de concaténation & dans excel.

Beaucoup plus simple à comprendre : un exemple

nb.si(plage,"animateur-"&"*")

va dénombrer toute les cellules dont la valeur commence par "animateur" et se termine par n'importe quoi.

Faites moi signe si vous voulez un exemple dans un classeur mais merci de fournir un classeur avec une base de tableau.

bon aller, je fournie un exemple....

bien à vous

-- 16 Mai 2010, 09:20 --

je propose cette réponse

nb.si(plage; "animateur"&"*")

"animateur" est le nom de votre professionnel - ça pourrait être une adresse de cellule

"*" est le caractère joker

& --> dans tous langage de programmation y compris excel pour juxtaposer des valeurs différentes il faut utiliser un opérateur de concaténation. dans excel c'est &

voir fichier exemple

bizarre j'ai posté une réponse plus complète tout à l'heure mais elle n'apparait pas ... je suis nouveau ici et j'ai peut être fait une erreur

bien à vous

PS : pour répondre à la discussion philosophie "simple et compliqué" j'ai envie de faire une remarque. Sur la demande de notre internaute (nb.si) j'ai l'impression que la feuille de calcul se construit par étape successive de difficultés(pas trop énorme encore). Mais j'ai l'impression qu'on construit une maison en mettant d'abord un mur quelque part puis on se demande où mettre le second etc....

avec cette méthode, je parie qu'on va arriver à un moment où on ne pourra plus utiliser le potentiel d'excel pour faire les calculs car le projet sera bancal... alors on sort l'armada vba pour s'en tirer sans trop de mal mais ça ne me semble pas rationnel.

la personne qui disait c'est compliqué de faire simple se reconnaitra peut être dans mon exemple de maison.

en fait il serait plus judicieux de faire avant tout le plan général du projet (la maison ou le tableau excel) en pensant à la finalité au premier stade,

par expèrience je peux affirmer que à chaque fois qu'on se trouve coincé avec excel pour aller au bout de notre projet c'est qu'il n'a pas été pensé au préalable.

c'est peut être ça que veut dire l'adage : "c'est compliqué de faire simple"

-- 16 Mai 2010, 09:30 --

mea culpa

je me plaignais que mon premier post n'apparaissait pas et maintenant il apparait ce qui fait une réponse très longue.

un problème de rafraîchissement d'écran je suppose. Désolé d'avoir été bavard.

excusez moi pour cette erreur. je suis inscrit depuis hier et pas encore habitué à "excel pratique"

le réponse de la personne qui propose nb.si(plage;"AA*") est courte et excellente. Néanmoins je propose dans mon exemple

de faire la liste des animateurs dans un tableau annexe pour automatiser le calcul. Dans ce cas le & est de rigueur.

cordialement

Bonjour à tous,

Bonjour Amadeus,

Tout d'abord merci du complément apporté. Je savais qu'il me fallait placé l'étoile mais je ne savais plus s'il le fallait entre "" ou entre () alors que c'est tout simplement *. Ca marche très bien dans les deux sens..

Pour approfondir mes connaissances, je voudrais que toutes les cellules commençant "AB" par exemple passe en rouge.

par MFC c'est pas possible car il y a près d'une dizaine d'Animateurs. Je pense qu'il faut passer par les "STYLES" mais je ne sais pas faire.

A ce sujet aurais-tu une solution?

Merci d'avance

Amicalement

Noel

Bonjour

Noël, c'est possible en MFC, simple problème de rédaction correcte des conditions de la MFC

Cordialement

Re,

Cher Amadeus,

Il me semble qu'en MFC on ne peut remplir que 3 conditions

Que dois-je faire quand j'ai 8 ou 9 Animateurs?

@+

Amicalement

Noel

re, bonjour

J'ai du louper un épisode.

Tu veux une couleur pour chaque animateur?

11couleursnbsi.zip (9.87 Ko)

Bonjour à tous,

Un grand merci à tous les intervenants qui m'ont aidé à résoudre ce fil

Ca fonctionne très bien.

Amicalement

Noel