Formule SI avec recherche et remplace

El-sol -  
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai Excel 2010.
Dans un fichier, j'ai créé 12 macros pour faire changer les mois dans des formules qui font références à des dossiers différents (une trentaine) qui sont nommés avec des périodes. Chaque macro dit: changer 2013-07 pour 2013-08 dans toutes les formules (pour ma macro d'août par exemple). Et, rendu en septembre, j'activerai la macro qui dit: changer 2013-08 pour 2013-09.

Mais j'ai pensé que je pouvais intégrer les macros dans une seule mais je ne sais pas si c'est possible.

Voilà. J'ai créé une liste déroulante en A1 dans laquelle on y retrouve chaque mois de l'année.
J'aimerais avoir une macro qui dirait: si A1 = août 2013, alors recherche 2013-07 et change-le pour 2013-08. Et dans la même macro, ça continuerait ainsi: si A1 = sept 2013 recherche 2013-08 pour 2013-09, etc...
L'utilisateur du fichier n'aurait qu'à choisir le mois voulu en A1 dans le menu déroulant et activer la macro.

est-ce possible de mettre des recherche et remplace dans une formule SI et le tout dans une macro ?

merci

(P.S.: Dites-moi comment vous joindre un fichier en exemple. merci)

A voir également:

5 réponses

Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Vous dites d'entrée: ça ne fonctionne pas :(
Et je vous réponds que ce n'est pas vrai car j'ai monté un test chez moi et cela marche parfaitement.
Si vous l'avez essayé pourquoi ne pas informer du résultat que vous obtenez..... ?
Je pense que vous avez un autre problème.
En plus : Et ce n'est pas la formule que j'ai proposée Qui est basé sur votre exemple ou il n'y a aucune date pour [MAGASIN ABC]
Et ce n'est pas la formule que j'ai proposée : Et votre formule en [C7] de cette forme :
=INDIRECT("'K:\MAGASIN ABC\[EF "&refA2&" MAGASIN ABC.xlsx]Sommaire'!$C$18")
Qui est basé sur votre exemple ou il n'y a aucune date pour [MAGASIN ABC]



Faite donc une image du répertoire, que l'on puisse voir exactement de quoi il ressort... !





Salutations.
Le Pingou
1
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
On vous la proposer plusieurs fois, mais toujours sans résultats.... !
Mettre le fichier sur https://www.cjoint.com/ et poster le lien !

0
El-sol
 
voici le lien:
http://cjoint.com/?CJioijp1GtM

et désolée de ne pas m'en être rappelé, je m'en sers que très rarement. J'ai cherché sur le site mais je ne l'avais pas trouvé. Ce serait pratique d'avoir un bouton à la portée de la main pour dire: si vous voulez joindre un fichier, cliquez ici. Non ?

Je l'avais déjà pris en note mais depuis qu'on m'a changé mon ordi au bureau, j'ai perdu mes notes.

bon, je reviens à ma question. Dans ce lien, j'ai mis un exemple de mes formules et des macros. Si tu cliques sur le bouton "août" dans mon fichier, les références dans les formules changeront. Comme je disais, il y aura une trentaine de compagnies mais énormément de formule et aussi plusieurs feuilles de calcul.
Mon but est que la personne n'aura qu'à changer la référence dans la case A2 et activer une seule macro.

est-ce possible ?

merci
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Eh bien déjà aucune de vos macros fonctionnent, elles sont inutilisables.
Il me semble que l'on vous avait proposé de travailler avec la fonction [INDIRECT()]....il est possible d'utiliser une variable en A1 par exemple
=INDIRECT("'K:\COMPAGNIE UNTEL "&A1&"\[EF 2013-08 COMPAGNIE UNTEL.xlsx]Sommaire'!$C$18")

En utilisant cette proposition de gbinforme (salutations) vous pouvez attribuer la bonne valeur sans macro.
Par exemple en utilisant votre liste déroulante en [A2]
Vous nommez la cellule [A2] : refA2 , et fait référence à : =Feuil1!$A$2
Et votre formule en [C7] de cette forme :
=INDIRECT("'K:\MAGASIN ABC\[EF  "&refA2&" MAGASIN ABC.xlsx]Sommaire'!$C$18")

Note: il faut encore ajuster votre liste déroulante pour avoir le bonnes valeurs..!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
El-sol
 
ça ne fonctionne pas :(
j'ai oublié de rajouter quelque chose dans mon fichier en exemple.
J'explique:

mettons qu'on est en septembre et que je veux les données des états financiers de septembre de toutes les compagnies.
La compagnie ABC, ses EF sont dans K:\MAGASIN ABC oct 2013 (parce que sa fin d'année fiscale est en octobre 2013)
et son fichier se nomme EF 2013-09 Magasin ABC

Quand on sera rendu en octobre, le chemin sera: K:\MAGASIN ABC oct 2013\EF 2013-10 Magasin ABC

Et quand on sera rendu en novembre, le chemin sera: K:\MAGASIN ABC oct 2014\EF 2013-10 Magasin ABC

Puisqu'on a fait la fin d'année fiscale de ce magasin, c'est pour ça que le répertoire se nomme maintenant oct 2014.

Je reviens en septembre. Tous les EF de toutes les compagnies se nomment EF 2013-09 Magasin ... mais le nom de leur répertoire va varier d'une compagnie à l'autre car ils n'ont pas leur fin d'année fiscale en même temps. Donc, on a du 2013 en même temps que du 2014.
L'emplacement du répertoire reste au même endroit, c'est juste l'année dans le nom qui diffère. Car quand une année est terminée, on l'enlève du K pour la mettre aux archives.

Je n'ai jamais essayé le INDIRECT mais dans ta proposition, ça fait changer le nom du fichier. Mes macros permettaient de changer le nom des fichiers à chercher sans aucun problème, car ils changent tous de mois en même temps. C'est le nom de l'année dans le répertoire qui me cause problème.

Si j'essaie le INDIRECT ainsi à la place:
=INDIRECT("'K:\MAGASIN ABC "&refA2&" \[EF 2013-08 MAGASIN ABC.xlsx]Sommaire'!$C$18")
ça ne peut pas marcher car le répertoire reste le même pendant un an.

c'est pour ça que je cherchais quelque chose qui ferait changer l'année au bon moment dans les recherches. Je décortique ici ma demande:
Je reprends mon exemple de: K:\MAGASIN ABC oct 2013\EF 2013-10 Magasin ABC

Quand on voudra les EF de novembre, je cherche à créer ceci:
si A1 = nov 2013...
(car on veut les EF de nov 2013)
...alors recherche dans les formules les compagnies dont leur année fiscale se terminait en oct 2013 et change-le pour oct 2014
(dans le but de changer partout où c'est écrit: K:\MAGASIN ABC oct 2013 pour K:\MAGASIN ABC oct 2014 ou toutes les autres compagnies en oct 2013 car leur EF de nov 2013 se trouve dans la nouvelle année fiscale, c'est leur période 1).

Et dans la même macro, ça continuerait ainsi: si A1 = déc 2013 recherche nov 2013 et change le pour nov 2014, etc.... comme ça, à chaque mois, les années dans les noms de répertoire changeraient au fur et à mesure qu'une nouvelle année fiscale est créée.

dans mes macros individuelles, c'est là où je changeais le nom du fichier avec ceci:
Cells.Replace What:="-08", Replacement:="-09", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

mais que je voudrais incorporer avec mon SI + recherche et remplace.
En premier lieu, je voudrais faire changer les années fiscales dans les répertoires et en 2e lieu, le mois dans le nom des EF (qui sont toujours nommés en chiffre et non en lettre).

Ouf, c'est long à expliquer. Je ne suis même plus certaine d'être claire dans mes explications. Je commence à croire que ce que je cherche n'existe pas.

Mais merci pour ta patience.
0