NB.SI.ENS à travers macro sur classeur fermé

Bonjour,

Je fais appel à vous car je rencontre un problème avec un NB.SI.ENS faisant références à 4 critères (dont une date) sur un classeur différent. Or, le NB.SI.ENS ne fonctionne pas lorsque le classeur est fermé.

Je souhaiterais soit : trouver une fonction similaire (j'ai parcouru les divers forums, en vain), soit passer par un code VBA.

Il me semble que le plus adapté serait par VBA, le problème est que je maîtrise que très peu le codage.

Je laisse mes deux fichiers en pièces jointes pour que vous puissiez visualiser.

Dans le fichier TestDate, se trouvent les formules NB.SI.ENS que j'ai crées. Les formules vont du 1er au 5 décembre pour le moment mais la macro devra continuer jusqu'au 31 décembre.

J'ai renommé les 4 critères sur le fichier AZC 2017.

Si vous aviez une idée pour résoudre mon problème, j'en serai ravi !

Je vous remercie d'avance.

6azc-2017.xlsx (23.92 Ko)
8testdate.xlsx (62.00 Ko)

MrVBA,

SI ton pb est toujours d'actualité, j'ai une question avant de foncer dans le VBA : pourquoi ton EXCEL de recherche serait fermé? Et pourquoi ne pas l'ouvrir s'il l'est?

Bonjour GVIALLES,

Je pourrais effectivement ouvrir le classeur et ensuite récupérer les données. Le problème est que ces données seront ensuite récupérées par un autre classeur sous une forme différente.

Pour résumé, si j'ouvre le classeur, que je récupère les données et qu'ensuite je referme le classeur : Les données apparaîtront avec un #Valeur ce qui ne me permettra pas de les récupérer dans le classeur suivant. Je ne peux pas laisser toujours le classeur ouvert étant donné que d'autres utilisateurs en ont également besoin.

J'ai trouvé une fonction (SOMMEPROD) qui permet de récupérer les données sur un classeur fermé. Cette méthode fonctionne, par contre j'ai une centaine de colonnes et le fichier met réellement 3 minutes pour enregistrer les données de seulement 16 colonnes.

Je cherche donc à passer par du VBA.

Malheureusement le problème est toujours d'actualité et n'avance plus beaucoup.

Merci à vous

MrVBA,

Sans avoir rien tenté, j'ai bien peur que le temps mis aujourd'hui pour réaliser cette fonction soit consommé en ouverture/fermeture de l'EXCEL de référence "AZC 2017.xlsx" et qu'un code VBA de base ne t'apporterait pas de gain substantiel.

Une idée pourrait-être:

- A l'ouverture de "Testdate.xlsx" de charger par du code VBA les données de "AZC 2017.xlsx" dans une feuille "Données" de "Testdate.xlsx" et de faire pointer tes "NB.SI.ENS" sur ces données dans le même classeur plutôt que sur "AZC 2017.xlsx".

Qu'en dis-tu?

GVIALLES,

Cela pourrait être une idée à tester, à condition que la liaison entre les deux classeurs soit à l'origine de la lenteur de l'enregistrement de TestDate.

Dans le cas contraire, cela ne changera pas ma problématique de temps d'enregistrement.

Pensez-vous que c'est lié ?

Merci d'avance

MrVBA,

Oui, je le pense mais un test serait plus sûr.

Rechercher des sujets similaires à "ens travers macro classeur ferme"