VBA : formules paramétrée

napo124

XLDnaute Junior
Bonjour,

J'ai bloque sur une une macro vba:

Je dispose de deux fichiers:
1) Une base de données
2) Un fichier synthèse avec sur une feuille: une cellule contenant le chemin d'accés précis de la base de données (du type: P:\dossier\dossier2\fichier.xls), et une cellule contenant un numéro précis.

Ma question est la suivante:
Sachant que la base de données contient une colonne (la B) établissant une liste précise de données strictement différentes (pas de doublons) et que sur mon fichier synthèse je dispose d'une cellule avec un chiffre présent dans cette colonne B:
COMMENT PUIS JE RETROUVER LE NUMERO DE LIGNE (DANS LA COLONNE B) DU CHIFFRE CONCERNE INSCRIS DANS LE FICHIER SYNTHESE?

Mon but est en effet de récupérer via ce chiffre différentes cellules sur la même ligne dans le fichier base de données pour les réinscrir par la suite dans le fichier synthèse.

ATTENTION !
Le chemin d'accès du fichier base de données peut être changé et ne peut donc être retrouvé que dans la cellule spécifiée dans le fichier synthèse.
C'est donc en se basant sur le chemin d'accés ET sur la cellule indiquant le numéro souhaité que la macro doit faire ressortir le numéro de ligne du numéro dans la colonne B du fichier base de données.

Avez vous des idées pour procéder tout en jonglant entre ces deux fichiers?
 

job75

XLDnaute Barbatruc
Re : VBA : formules paramétrée

Bonjour napo124.

A priori pas besoin de VBA, une formule avec EQUIV doit suffire.

Puisqu'il faut utiliser le texte du chemin d'accès, la plage de recherche devra être déterminée en utilisant INDIRECT.

Mais cette fonction ne fonctionne pas sur un fichier fermé.

Utiliser alors la fonction INDIRECT.EXT de Morefunc.

Il s'agit d'une bibliothèque de fonctions (macro complémentaire) que l'on peut télécharger gratuitement sur le web.

A+
 

job75

XLDnaute Barbatruc
Re : VBA : formules paramétrée

Re,

Deux précisions tout de même.

Dans le fichier de synthèse, le chemin d'accès doit préciser le nom de la feuille et être de la forme, par exemple en cellule A1 :

Code:
P:\dossier\dossier2\[fichier.xls]Feuil1

Pour obtenir la colonne B avec INDIRECT.EXT, vous devez écrire alors :

Code:
INDIRECT.EXT("[SIZE="4"][COLOR="Red"]'[/COLOR][/SIZE]"&A1&"[SIZE="4"][COLOR="red"]'[/COLOR][/SIZE]!B:B")

Ne pas oublier les guillemets simples en rouge.

Edit : encore une précision, dans l'aide jointe à INDIRECT.EXT, il est précisé que cette fonction ne doit pas être utilisée dans plus d'une trentaine de cellules...

A+
 
Dernière édition:

napo124

XLDnaute Junior
Re : VBA : formules paramétrée

Bonjour job et merci de votre réponse,

Malheureusement je ne peux pas me servir de morefunc:mad:
Je vous joins un fichier exemple pour mieux vous aider à comprendre mon pb (que je rencontre fréquement à vrai dire :/).
 

Pièces jointes

  • exemplenapo1.xls
    26.5 KB · Affichages: 81

job75

XLDnaute Barbatruc
Re : VBA : formules paramétrée

Re,

Malheureusement je ne peux pas me servir de morefunc:mad:

Eh bien utilisez INDIRECT, simplement il faudra que le fichier de données soit ouvert, voilà tout.

Vous pouvez l'ouvrir en même temps que le fichier de synthèse avec une macro Workbook_Open.

Edit : avec INDIRECT, vous remarquerez que le chemin d'accès complet est inutile.

Il suffit d'avoir en A1 : [fichier.xls]Feuil1

Mais par sécurité (noms avec des espaces) maintenir les guillemets simples pour l'utiliser.

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 216
Membres
103 158
dernier inscrit
laufin