Comment relier des fichier excel entre eux

Fermé
davidroro - 23 sept. 2011 à 14:59
 davidroro - 6 oct. 2011 à 20:54
Bonjour,

J'ai 100 fichiers excel qui sont numérotés de 1 a 100, exemple :
(Archiv1\[1.xls]), Archiv1\[2.xls], etc.

Je cherche a obtenir en automatique dans un fichier excel de synthèse les données correspondante au fichier 1, 2, 3, etc, Feuil1'!D4 :
Archiv1\[1.xls]Feuil1'!D4
Archiv1\[2.xls]Feuil1'!D4
Archiv1\[3.xls]Feuil1'!D4

Merci pour votre aide.
A voir également:

8 réponses

personne n'a envie de m'aider!
0
met une colonne qui va de 1 à 100 puis met

Archiv1\[indirect(C1).xls]Feuil1!D4

Ici la colonne C équivaut à ta colonne de 1 à 100
0
Bonjour,
je ne comprend pas la formule.

\archiv1 est le nom de dossier ou se trouve les fichiers 1, 2, 3, ... 100

j'ai un autre excel ou je souhaite recuperer les donnees du fichier 1, 2, 100. Feuil1'!D4
le probleme est que je tape en manuel :

'C:\.............. \Archiv1\[1.xls]Feuil1'!D4

'C:\.............. \Archiv1\[2.xls]Feuil1'!D4

'C:\.............. \Archiv1\[3.xls]Feuil1'!D4, etc
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
23 sept. 2011 à 15:24
salut
si j'ai bien compris tu veux pouvoir recopier vars le bas un cellule contenant =Archiv1\[1.xls]Feuil1'!D4 avec seulement le 1 de 1.xls qui s'incrémente jusqu'à 100 dans la recopie

si c'est ça moi je passerai par une concaténation de plusieurs cellules (que tu pourras masquer une fois la recopie effectuée)

exemple
cellule A1 mettre Archiv1\[
cellule B1 mettre 1.xls
cellule C1 mettre ]Feuil1'!D4
cellule D1 mettre =CONCATENER(A1:C1)
et recopier vers le bas normalement seul de le 1 de 1.xls va s'incrémenter
si D4 s'incrémente mettre $D$4 à la place
0
Bonjour,
ne suis pas un expert, peux tu me donner la formule complete = .....
Merci par avance
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
25 sept. 2011 à 10:43
ben je te l'ai donnée c'est celle en D1
0
Bonjour,
j'ai essaye mais cela ne fonctionne pas.
possible que je ne me suis pas bien exprime.

\archiv1 est le nom de dossier ou se trouve les fichiers 1, 2, 3, ... 100

je souhaite faire glisser dans un autre fichier excel les donnees contenues dans les fichiers 1,2,3, 100 .. pour otenir dans chaque lignes du nouveau fichier :
Archiv1\[1.xls]Feuil1'!D4
Archiv1\[2.xls]Feuil1'!D4
Archiv1\[3.xls]Feuil1'!D4
etc.

aujourd'hui lorsque je fais glisser j'obtient :
Archiv1\[1.xls]Feuil1'!D4
Archiv1\[1.xls]Feuil1'!D5
Archiv1\[1.xls]Feuil1'!D6
etc.

encore merci
0
Bonjour,

compte tenu, que je n'ai pas recu de reponse, faut il en conclure qu'il n'existe pas de solution!

ou que personne ne veut relever le defi...

merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 1/10/2011 à 10:20
Bonjour

essayez ceci:
sur ligne 2 en A2 de votre récap:

=INDIRECT("'Archiv1\["&LIGNE()-1&".xls]Feuil1'D4")
à tirer vers le bas. La valeur de LIGNE()-1 va s'incrémenter, pas le reste du texte.

notes:
1°) ligne()-1 sur ligne 2 donne 1
2°) il est curieux que le crochet soit après archive dans votre demande.
3°) pour valider la solution via INDIRECT:
placer dans une cellule:
="'Archiv1\["&LIGNE()-1&".xls]Feuil1'D4"
le libellé qui s'affiche dans la cellule doit correspondre exactement à l'adresse complète à utiliser
*crdlmnt

ps vous concluez vite.


Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
Bonjour,

Le chemin complet ou se trouve le fichier ou je veux recuperer les donnees est :
='C:\Documents and Settings\David\Desktop\JUIN 2011\BS\Client X\QS 2011\Archiv1\[1.xls]Feuil1'!D2

Meme chose pour le fichier 2 :
='C:\Documents and Settings\David\Desktop\JUIN 2011\BS\Client X\QS 2011\Archiv1\[2.xls]Feuil1'!D2

Etc.

Je ne comprend pas je dois inserer votre formule dans le chemin...
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
1 oct. 2011 à 12:08
Le code INDIRECT utilise le texte écrit dans la formule et le transforme en adresse Il faut donc écrire tout le texte en utilisant le code LIGNE() pour faire varier le N°entre crochets, sachant que de chaque coté , les deux parties du texte sont entre guillemets.
crdlmnt
0
je dois vous preciser que je ne suis pas un expert, et que ce que vous me dite est du charabia pour moi.
par rapport au chemin que je vous ai donner, pourriez vous me donner la formule...
merci
0
je suis en train de m'arracher les cheveux, j'ai touner la formule dans tout les sens, resultat REF, non valide...
j'ai vraiment besoin d'aide.
merci
0

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

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
1 oct. 2011 à 17:38
RE
=iNDIRECT("'C:\Documents and Settings\David\Desktop\JUIN 2011\BS\Client X\QS 2011\Archiv"&MLIGNE()-1"\[2.xls]Feuil1'!D2 ")

D2ou D4, va savoir??


Crdlmnt
0
bonjour,
excel dit qu'il y a une erreur dans la formule.

ce que je cherche a modifier en automatique dans le chemin c'est (1.xls / 2.xls, etc.):

C:\Documents and Settings\David\Desktop\JUIN 2011\BS\Client X\QS 2011\Archiv1\[1.xls]Feuil1'!D2
C:\Documents and Settings\David\Desktop\JUIN 2011\BS\Client X\QS 2011\Archiv1\[2.xls]Feuil1'!D2
Etc.

Merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
3 oct. 2011 à 10:01
Si le texte de votre message est intégralement celui que vous avez dans la barre de formule:

=INDIRECT("C:\Documents and Settings\David\Desktop\JUIN 2011\BS\Client X\QS 2011\Archiv1\["&LIGNE()&".xls]Feuil1'!D2")
LIGNE() correspond à 1 sur ligne 1

voila le texte reconstruit que vous devriez obtenir.
le mieux à faire:
copier la barre e formule et copier le texte dans une cellule, sans le signe =
placer le LIGNE() à la place du N° de fichier
encadrer les deux textes de chaque coté de ce code par des guillemets
placer le tout entre parenthèses
rajouter devant =INDIRECT
voila le texte que vous devriez obtenir en incrémentant:
http://www.cijoint.fr/cjlink.php?file=cj201110/cijO44OTOb.xls
crdlmnt
0
Bonjour,

la formule fonctionne, elle me donne bien 1.xls, 2.xls, etc, dans le cas de la formule ci-dessous :

=("C:\Documents and Settings\David\Desktop\JUIN 2011\BS\Client X\QS 2011\Archiv1\["&LIGNE()&".xls]Feuil1'!D2")


mais des que je mets devant la formule = INDIRECT, la formule me donne le resultat : REF
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 5/10/2011 à 16:33
Bonjour
sauf erreur autant dans ma dernière proposition que dans votre message, il manque l'apostrophe au début entre le "et le C>> "'C:\........
crdlmnt
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
5 oct. 2011 à 16:48
salut
je reprends ma proposition en la modifiant pour qu'elle s'incrémente au bon endroit
cellule A1 mettre Archiv1\[
cellule B1 mettre 1
cellule C1 mettre .xls]Feuil1'!$D$4
cellule D1 mettre =CONCATENER(A1:C1)
et recopier vers le bas
normalement seul le 1 va s'incrémenter
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 5/10/2011 à 17:02
Bonsoir Usul

ça devrait pouvoir marcher aussi,

mais est ce que cela peut fonctionner sans l'adresse complète?

par ailleurs,
je pense que ta formule en D1 est:
CONCATENER(A1;B1;C1)
car chez moi(mais c'est chez moi) CONCATENER(A1:C1) renvoi #VALEUR
je crois aussi que pour utiliser ensuite le code INDIRECT, tu as le même problème d'oubli que moi: il faut écrire en A1:
'Archive\1[ en commençant par l'apostrophe.

et bien cette solution n'exclut pas l'utilisation du code INDIRECT

Bien amicalement
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
5 oct. 2011 à 19:21
Bonsoir Vaucluse
il faudrait que je prenne le temps de revoir tout ça car j'ai indiqué ça de mémoire.
j'ai mis en place une telle solution il y a longtemps et je n'ai pas vérifié sur mes fichiers toujours utilisés comment était réellement la formule.
je n'utilise pas le code INDIRECT dans ma formule donc pas besoin d'apostrophe. en plus si je me souviens bien la référence relative fonctionne bien si les classeur sont dans le même dossier donc l'apostrophe n'est pas nécessaire

dès que j'ai le temps je regarde mais en ce moment c'est un peu chaud ;-)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 5/10/2011 à 19:44
Ok usul si tu as le temps, ça m'intéresse de savoir comment tu passes par concaténer sans le code INDIRECT!
Ceci dit:
__ compte tenu du chemin je pense que les dossiers sont différents.
__ si on n'a pas d'apostrophe au début , on n'en a pas non plus à la fin, après Feuil1!

bien cordialement
0
tout les fichiers excel ([1.xls]Feuil1'!D2, [2.xls]Feuil1'!D2, [3.xls]Feuil1'!D2, etc) sont dans le meme fichier (Archiv1)

j'ai rajoute une apostrophe, j'ai retire les apostrophes, meme resultat : #REF!
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 6/10/2011 à 17:09
je m'en voudrais d'insister, car la solution marche, elle a déjà été validée plusieurs fois et je viens encore de le vérifier chez moi entre deux fichiers. mais il y a peut être un problème dans votre fichier ou dans vos désignations

effectivement, si vos fichiers sont dans le même dossier:
=INDIRECT("'["&LIGNE()&".xls]Feuil1'!D2"
devrait marcher
*controler de près, et n'oubliez pas: les apostrophes derrière le 1° guillemet et devant le point d'exclamation sont obligatoire
essayez pour voir cette formule sans utiliser ligne:
=INDIRECT("'[1.xls]Feuil1'!D2")
et dites nous ce qu'elle donne.
A vous lire

crdlmnt

ps vérifier aussi que l'adresse fonctionne en traditionnel, soit:
='[1.xls]Feuil1'!D2
0