Recherche données

bonjour le forum,
j’ai un petit souci sur excel :

je souhaite que sur une feuille appelée “regroupement_données”, l’ordinateur me demande la feuille que je désire analyser c’est à dire :
je choisis un document excel (qui peut être différent la prochaine fois)
je cherche dans ce classeur, la colonne groupe (elle n’est pas toujours placée dans la même colonne selon le document excel)
puis je recherche le groupe “do” … [ainsi que les autres]
je calcule combien il y en a dans cette feuille et le résultat s’affiche alors dans le tableau de la feuille “regroupement_données”.

quelqu’un aurait-il une solution?!

ci dessous divers classeurs pour avoir un exemple
la feuille “regroupement_données” calculée par les données fournies sur la feuille cas n°1 et ensuite, si on reçoit un autre fichier est-ce que la formule précédente peut fonctioner sur la feuille “regroupement_données”?! (cas n°2)

exemple:
CLASSEUR “cas n°1”
n°-----nom------prénom------groupe------unité
2------mate--------kati------------do-----------------104
5------ani-------gerard-----------co--------------22
3--------laure------benoit---------so--------------35
6--------steph------hervé----------do--------------22

CLASSEUR "cas n°2
n°-----nom------prénom------age------ville------groupe------unité
2------mate-----kati-----------25-------toulouse–do----------104
5------ani-------gerard--------29-------avignon–co-----------22
3------laure-----benoit-------55--------toulouse–so-----------35
6------steph-----hervé--------49-------arles------do-----------22

CLASSEUR “regroupement_données”
unité------do-------co------so
22--------??--------??-------??
35--------??--------??-------??
104------??---------??-------??

d’avance merci pour votre aide
Edité le 05/08/2008 à 11:02

A première vue pas trop difficile
Quelques points à préciser, quand même :

Le tableau “regroupement” ne sert que pour un tableau “cas” à la fois ?
Et si on change de “cas”, on écrase les données regroupées précédentes ?

Tu ne veux pas simplement compter les éléments co, do, tu veux le faire unité par unité ?

Donne-nous le tableau regroupement rempli pour chacun des deux “cas” cités plus haut.
Ce sera plus facile à comprendre

Dernière chose : les tableaux “cas”, tu les reçois de l’extérieur, ou tu as possibilité d’intervenir dessus à la création (par exemple donner des noms aux colonnes ?)

Essaie aussi de modifier ton titre pour qu’il soit plus explicite (précise au moins le langage).
Pense à ceux qui auraient le même problème que toi et qui chercheraient leur solution dans une liste de titres …

le tableau “regroupement” sert à synthétiser les données fournies dans la feuille “cas…”
cependant, les données reçues peuvent être données différemment. D’où la feuille “cas n°1” et “cas n°2” (c’est-à-dire les colonnes ne sont pas dans le même ordre).
en clair dans la formule désirée, je dois chercher dans la feuille où peut se trouver la colonne “groupe” et “unité”.
donc si j’ai le calcul par rapport au premier cas, la fois d’après les données s’effacent pour chercher par rapport au cas n°2.
le nom des colonnes sont déjà nommées quand je reçois le nouveau document de données.

ce que je dois obtenir dans la feuille regroupement (par rapport au cas n°1 résultat identique ici au cas n°2):
unité------do------co------so
22------------1--------1-------0
35------------0--------0-------1
104----------1--------0-------0

N.B: j’utilise excel 2003(vba)

Compte tenu de ce que tu as deux critère à respecter, et de la possibilité de trouver les colonnes à des places différentes, je crois que le passage par le VBA est obligatoire.

Il y a bien entendu plusieurs méthodes ; Pour ma part je pense que j’utiliserais une fonction personnalisée :
(on va l’appeler compter() pour l’exemple)
Dans chaque cellule à remplir de la feuille récapitulative, tu entres la fonction, avec comme arguments ses critères de recherche.
Par ex, pour la première cellule (B2) cela donne =compter(22,“do”)
mais comme ce n’est pas facilement copiable d’une cellule à l’autre, mieux vaut utiliser la forme =compter($A2, B$1) que tu peux dupliquer par copier/coller

Ensuite, tu construit ta fonction compter

  • ouverture de la feuille à traiter
  • recherche des colonnes unité et groupe
  • balayage des lignes utilisées et incrémentation d’un compteur si les valeurs trouvées dans las colonnes précédemment identifiées sont celles passées en paramètre
  • renvoi de la valeur compteur

Il faudra également prévoir sur ta feuille récapitulative une cellule pour choisir le nom du classeur et de la feuille à traiter
Si tu as des pb de vba, tu donnes ton code et on essaiera de voir ce qui ne va pas

bonjour gcc,
merci de ton aide mais si tu peux m’aiguiller plus, je n’y arrive pas du tout, dès le début je bloque!!:frowning:

Il faudrait que tu dises où tu bloques
Dans l’utilisation de la fonction (dans la feuille excel) ou dans son écriture en vba
Quel est ton niveau en VBA ? tu sais créer un module et y mettre des fonctions ?