J'ai une formule pour compter le nombre de fois ou un élément est présent dans une partie de feuille : =NB.SI(Feuil1!$B$2:Feuil1!$B$505;A6)
Seulement, il y eu a un changement. Je dois désormais vérifier la présence de plusieurs éléments dans une même cellule.
Exemple : dans la feuille 1, j'ai dans une cellule "un ballon de plage et un porte-clef" et dans une autre "un ballon de foot et un porte-clef".
Sur la feuille 2 avec cette formule, je devrais avoir
ballon de plage = 1
ballon de foot = 1
porte-clef = 2
En fait, je prépare des billets pour une tombola et je veux être sur de ne pas me tromper dans le nombre de lots sur les billets et mes petits copains ont eu la géniale idée de mettre plusieurs lots pour un billet gagnant.
Palmidem
15/05/2007 à 07:25
CITATION(pjl @ 15/05/2007 à 00:20 )

J'ai une formule pour compter le nombre de fois ou un élément est présent dans une partie de feuille : =NB.SI(Feuil1!$B$2:Feuil1!$B$505;A6)
Seulement, il y eu a un changement. Je dois désormais vérifier la présence de plusieurs éléments dans une même cellule.
Exemple : dans la feuille 1, j'ai dans une cellule "un ballon de plage et un porte-clef" et dans une autre "un ballon de foot et un porte-clef".
Sur la feuille 2 avec cette formule, je devrais avoir
ballon de plage = 1
ballon de foot = 1
porte-clef = 2
En fait, je prépare des billets pour une tombola et je veux être sur de ne pas me tromper dans le nombre de lots sur les billets et mes petits copains ont eu la géniale idée de mettre plusieurs lots pour un billet gagnant.
pas facile ton affaire
je dirais :
- soit écrire l'intitulé de chaque lot dans une cellule différente
- soit trouver un indicateur de 'troncature' (je ne sais si c'est le bon mot) pour savoir quel espace permet de séparer les intitulés de lot dans la chaine, saut à considérer que " et " est cet indicateur
Ensuite, travailler en matriciel avec =somme(si( proposition=x;matrice;0)) (et ses variantes) validée par Ctrl-Maj-Entrée
Si tu veux, tu m'adresses un classeur d'essai mais je ne pourrai pas y toucher beaucoup avant le 24 (je suis très charette ...

)
Merci pour ta proposition.
Je me suis mal exprimé pour le résultat final.
Sur la deuxième feuille, dans la colonne A, je rentre manuellement la liste des lots :
ballon de plage
ballon de foot
porte-clef
et c'est la formule que je cherche qui me permettra d'avoir dans la colonne B le total des lots saisis :
1
1
2
CODE
A | B
ballon de plage | 1
ballon de foot | 1
porte-clef | 2
Alastor 2262
15/05/2007 à 09:54
Avec la fonction "TROUVE", non ?
CITATION(Alastor 2262 @ 15/05/2007 à 09:54 )

Avec la fonction "TROUVE", non ?
J'y pensais justement. Attention, il faut gérer les cas du "non trouvé" qui renvoir une erreur
Je pensais aussi à un trouve ou un recherchev.
Et pour la gestion des erreurs, c'est facile, tu fais un si(esterreur(b4);"";b4) ce qui renvoie une cellule vide en cas d'erreur, sinon ça affiche b4. B4 est évidemment à remplacer par la formule de recherche appropriée.
Palmidem
15/05/2007 à 13:30
Il y a aussi la macro complémentaire Morefun.xla de Laurent Longres, qui comprend en particulier la fonction valeurs.uniques(matrice;tri) qui peut établir ta liste de lots automatiquement (si les intitulés ne sont pas composés) . reste à dénombrer les occurences pour chaque lignes.
Ca a l'avantage d'être dynamique et de ne pas planter.
Ca conviendrait je crois à ce que tu cherches
edit: fonction matricielle, elle aussi
J'ai travaillé sur vos réponses.
D'après la doc, si j'utilise TROUVE, je ne peux l'utiliser sur une plage de cellules.
Vous confirmez ?
Avec RECHERCHEV, en l'utilisant ainsi :
=NB.SI(Feuil1!$B$2:Feuil1!$B$505;RECHERCHEV(A17;Feuil1!$B$2:Feuil1!$B$505;1;VRAI))
ca me donne un résultat mais faux.
La formule compte bien les 52 cellules avec "bon d'achat" mais ignore la cellule "un bon d'achat et un vélo".
Pour Palmidem, désolé mais je n'ai pas tout compris. Il faut dire que je n'ai jamais appris à utiliser Excel.
GuitHarmoPalmipède
15/05/2007 à 17:22
salut
pour séparer du texte sur une autre cellule il y a la fonction =droite() ect
exemple :
en cellule A1 il y a "ballon de plage et un porte-clef"
pour avoir "ballon de plage" je fais en cellule A2 =gauche(a1;15)
pour avoir "un porte clef" je fais en cellule A3 =droite (a1;14)
15 et 14 sont le nombre de caractères comptés en partant de gauche ou de droite
pour concaténer il suffit de faire cellule A4= (A2&A3)
Luc
J'ai pas tout compris la feuille 1 c'est une liste ?
Palmidem
15/05/2007 à 19:05
CITATION(pjl @ 15/05/2007 à 15:16 )

J'ai travaillé sur vos réponses.
Pour Palmidem, désolé mais je n'ai pas tout compris. Il faut dire que je n'ai jamais appris à utiliser Excel.
bon, je maintiens : si tu as des lots composés, c'est le binz .. y'a des solutions (cf formules de manip de textes) mais quelle rationalité à la coupure de tes chaînes ?
Si tu as des lots indivudualisés, alors, je te propose la page exemple jointe, avec les liens pour télécharger la macro complémentaire, et un tuto sur les formules matricielles.
Pas dur à faire : si tu veux, je te le fais la semaine prochaine, pour le fun ...

edit: sur le classeur proposé, comme la formule de la macro complémentaire est utilisée, si vous ne chargez pas cette macro, vous n'aurez pas le résultat. Je peux faire un "copie des valeurs" mais ça perd bcp d'intéret.
Ci-joint mon fichier excel pour aider à comprendre.
La première feuille est reliée à un autre programme (DesignPro de Avery) de manière à générer automatiquement les bulletins. Sur ce bulletin, la personne sait de suite ce qu'elle a gagné et peut retirer de suite son lot.
Dans l'exemple, on nous a offert 10 tee-shirts.
On va donc pouvoir faire des lots combinés (un tee-shirt avec un porte-clef, un tee-shirt avec un stylo) mais il ne faut pas que je fasse plus de 10 lots avec un tee-shirt à gagner.
C'est donc à celà que sert la deuxième feuille.
On saisit manuellement la liste des différents objets à gagner et là, au miracle, je sais de suite si mes 10 tee-shirts sont casés ou pas.
Comme celà, pour 10 tee-shirts, c'est facile à compter manuellement mais on a aussi une série de 300 bons d'achat à placer.
Palmidem : merci pour ton fichier-exemple. Il va m'être très utile pour mettre à jour mon tableau qui gère les abonnements des portables au boulot.
Palmidem
16/05/2007 à 04:57
Dans ce cas, tu peux noter (ou considérer) qu'il s'agit d'un lot "T Shirt + Stylo" et le pas comptabiliser ces objects individuellement dans une autre catégorie : un stylo de ce lot n'a rien à voir avec un stylo Opel, par exemple.
exemple joint, du traitement de ton fichier
s'il y a saisie manuelle, gare aux erreurs d'orthographe ...! il vaudrait mieux la sécuriser
Sans connaître la feuille en détail mais finalement, ce ne serait pas très simple de définir la composition des lots sur 2 colonnes distinctes, puis de cumuler les résultats de synthèse de ces 2 colonnes
GuitHarmoPalmipède
16/05/2007 à 17:42
s'il y a saisie manuelle, gare aux erreurs d'orthographe ...! il vaudrait mieux la sécuriser
c'est sur que dès qu'il y a saisie, il y a risque d'erreur,
je vous propose une autre soluce
un tableau croisé qui compte les articles, dès qu'un des articles est donné il suffit de le supprimer de la liste et de raffraichir la base (feuille 3), vous avez le stock par produit et global
ou si vous désirez savoir qui a emporté le lot, en face ouvs indiquez le nom (ou le n° du bon), un p'tit raffraichissement et vous avez les lots partis (feuille7)
Merci à tous pour vos réponses et encore plus à ceux qui ont pris la peine de travailler sur le tableau.
Sincèrement, je ne pensais pas que ce soit si compliqué.
J'ai finalement trouvé la solution à ce que je cherchais.
En fait, il semble qu'il faille passer par du VB.
CITATION
'Vérifie si la chaîne DVP existe dans la cellule A1
If Range("A1").Value Like "*DVP*" Then MsgBox "Le mot ""DVP"" existe dans la cellule A1."
Du coup, je vais prendre la solution de D2P et mettre le 2eme lot dans une 2eme colonne.
Avantage : cette solution marche aussi avec OpenOffice.
Si je n'ai qu'un seul lot, il faut simplement que je mette un caractère invisible dans la cellule (un espace par exemple) sinon, j'ai une erreur dans DesignPro mais ca n'a rien à voir avec Excel.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez
cliquer ici.