Formule assez complexe de recherche et incrémentation (pour moi)

Bonjour à tous,

Je ne passe pas souvent par ici, mais là, je suis en quête d'une formule assez complexe, je ne sais d'ailleurs même pas si c'est possible avec les fonctions d' Excel.

Pour faire simple (enfin je vais essayer). Imaginons un tableau appelé "tableau 1" avecune plage de cellule avec des dates verticale (mise en colonne). a coté une case contenant un "select" avec par exemple AA, BB, CC, DD. et sur une autre partie de la feuille, ce trouve un tableau appelons le "Tableau 2". Dans ce tableau, une cellule qui s'incrémente de date correspondant au choix trouvé.

Exemple tableau 1:

Lundi 27 mars | AA

Mardi 28 Mars | BB

Mercredi 29 | AA

Etc......

Donc l'autre tableau fait une recherche sur le premier et dès qu'il trouve AA par exemple il indique la date se trouvant à gauche de AA Mais il faut (et c'est peut être là que je coince le plus), qu'il change de ligne à chaque fois qu'il trouve AA et indiqué la date correspondant à l'autre AA et ainsi de suite.

Je sais pas si j'ai été assez clair, au mieux je ferais un petit fichier excel pour représenté l'idée.... Je sais que ça demande du temps pour m'aider sur cette formule, aussi, je vous remercie par avance :)

Bonjour,

Si j'ai compris, avec une matricielle

8julkien60.xlsx (16.55 Ko)

Ho punaise ! C'est exactement ça ! Merci :) :)

Par contre n'étant pas un pro, et préférant comprendre une formule plutôt que de l'appliquer bêtement, aurais tu la possibilité de me l'expliquer ? Je t'en serais également reconnaissant.

Je viens d'essayer de mettre en pratique cette formule, mais je pense qu'au final je ne pourrais pas la mettre. Regarde sur mon document ci-joint, j'ai en fait plusieurs listes de plusieurs mois. Il faut imaginer les 12 mois de l'année. et un tableau décalé sur le coté recensant les divers valeurs (AA, BB, CC).

Ou alors, je ne comprend pas bien l'un des termes des fonctions....

3commeca.xlsx (9.40 Ko)

Re,

A tester avec une petite macro qui sera plus rapide que des matricielles si tu à 12 mois à gérer

5commeca.xlsm (25.83 Ko)

Merci pour ta réponse, encore une fois :)

Sincèrement, les macros, je comprend encore moins l'utilisation. J'ai une logique de codage lié au PHP, donc les formules excel, j'arrive à peu près à comprendre. La version matricielle me plait d'ailleurs mieux (pas de bouton ou autre, tout est automatique), mais j'ai juste du mal avec les fonctions lignes(). Tout du moins à la transposer dans la version que j'ai déjà établit de ce "calendrier"... Je sais que j'en demande beaucoup, mais si tu as une idée, ou une explication pour pouvoir utilisé les formules de base d' Excel au lieu et place des macros (comme sur le premier exemple), je suis tout ouïe :)

Merci d'avance encore une fois.

Re,

Si tu as 12 colonnes pour les mois à traiter avec une cinquantaine de lignes, en matricielle, prévoit le café et les croissants

place ton classeur sans données confidentielles, cela ira plus vite

Re, et merci :)

Donc voilà ci joint, débarrassé de plein de chose, une copie de mon fichier... J y ais laissé que "la présentation" de base... Mais en fait, il y a bien les 12 mois, mais le fait de trouver "AA",et récupérer la date devant chaque, arrive moins de 20 fois par ans. donc, je ne pense pas que ce soit si galère que ça, enfin, je pense...

Re

récupérer la date devant chaque, arrive moins de 20 fois par an

Sauf que la recherche se fera sur 365/366 jours et que les formules matricielles ne peuvent fonctionner sur des cellules fusionnées

D'autre part, tu aurais pu placer un exemple ressemblant au MAX à l'original, normalement dans K1, il y a l'année

Effectivement, j'ai repris le "calendrier" et j'ai copier coller dans une page vierge, en essayant de virer le max d'information perso...

Qu'entend tu pars, "ne peuvent fonctionner sur des cellules fusionnées" ? En théorie quand tu fusionne, le nom de la cellule devient le nom de la cellule la plus à gauche ?

Merci pour ton aide en tout cas.

EDIT: Oui j'ai oublié de remettre la case avec l'année.... Désolé.

Re,

Les formule matricielles comme le nom l'indique travailles sur des matrices (plage) et comme tes cellules des colonnes AW & AX sont fusionnées, Excel t'envoi l'erreur

Même si tu n'aime pas le VBA, je te l'ai fait quand même. la macro se trouve dans la Feuil1, donc pour ton fichier original, place le dans la feuille qui contient le calendrier et enregistre-le en XLSM. Cela t'évitera également les erreurs en cas d'effacement de formule et bien sur plus rapide

Toute la macro est commentée pour que tu puisse la mettre à ta sauce avec les plages concernées

Tu n'as pas besoin de bouton, la macro s'effectue à chaque modifications des cellules des colonnes contenant tes menus déroulants

J'avoue c'est génial, en regardant de plus prêt, je peux quand même faire le rapprochement avec le PHP :D

En tout cas cela fonctionne bien, donc un grand merci à toi !

J'ai quand même deux dernières questions:

Si je veux mettre plusieurs fois ce type de macro sur la même feuille, quelle variable dois je "renommé" ? En PHP, il suffit de base de changer le nom de la variable se trouvant derrière le dollar.

Et sinon, admettons que je veuille juste rajouter un "terme" à rechercher, par exemple AA mais aussi BB, (parce que je l'avoue, je n'avais pas penser faire ainsi), peut on juste rajouter cela dans ce même macro ? Est ce que sur cette ligne une commande de type "OR" (l'équivalent pour les macros) pourrais fonctionner ?

If Cells(i, j) = Range("AY14") Then Cells(aa, "AX") = Cells(i, j - 1): aa = aa + 1

Re,

Rajoute les colonnes sur mon modèle de ce que tu veux et je le ferai avec explications

Sinon, il y aussi possibilité que tu mettes un deroulant sur AZ12 pour lui indiquer les "AA", "BB", etc et jouer avec un petit ajout sur la macro

A toi de voir

Pour la première question, je me suis attardé sur le code, et je me suis auto-répondu :) Cela fonctionne bien. En revanche, je me pose la question de simplement avoir 2 arguments de recherche (CF, ma question 2).

Juste quand il trouve AA ou BB, il mets les dates dans le (même) tableau.

Re,

Juste quand il trouve AA ou BB, il mets les dates dans le (même) tableau.

Il faut préciser sur quel critère tu fait la recherche,

Dans mon exemple, la recherche se fait par la cellule AZ12 qui contient AA,

donc explique moi comment tu vas obtenir dans cette cellule AA & BB ou CC & GG, etc

Donne moi ta logique

Au cas où si tu place un déroulant en AZ12 avec tes critères de recherche, il te faut juste rajouter dans la ligne du dessus

If Not Application.Intersect(Target, Range("C3:C33, G3:G31,etc 

la cellule AZ12 à l fin, juste avant le guillemet. Cela recherchera dés changement sur AZ12

Je vais regarder pour l'ouverture d'un listbox au clic sur AZ12 ou tu cocheras les critères de recherche

Excuse moi, effectivement je manque de précision. Le premier critère dans AZ12, et le second dans BA12

Re,

Teste ceci en AY12 et AZ12

Merci encore une fois :)

Ton idée est bonne, j'ai réussi à l'adapter à ce que je souhaitais faire. Je ne sais comment te remercier :)

A bientôt peut-être :D

Rechercher des sujets similaires à "formule assez complexe recherche incrementation moi"