[VB] [Excel 2007] compiler des données

Fermé
Guillaume L - 3 juin 2009 à 13:46
 Guillaume L - 3 juin 2009 à 17:21
Bonjour à tous,

le but de ma requete est de trouver une solution à un problème qui me hante depuis plus d'une semaine,
j'ai cherché déjà un peu partout, j'ai trouvé quelque chose qui s'y rapproche mais cela ne fait pas ce que je veux.


Voici mon problème,
Je suis en stage, et je dois faire une analyse de fichier Excel où sont des informations sur des chantiers (je suis dans le bâtiement, je em demande bien pourquoi je dois faire ça mais bon^^)

j'ai près d'une centaine de fichier excel, et dans chaque fichier excel j'ai le premier onglet qui EST EXACTEMENT le même. il ya tjrs les mêmes informations aux mêmes endroits, seuls changent les quantités.

par exemple sur le fichier excel du chantier 12, il y a en A2 de l'onglet 1 20kg de sable
sur le fichier excel du chantier 18A, il y a en A2 de l'onglet 1 65kg de sable
Ect

j'ai donc 100 fichiers qui contienent 526 données que je suohaitent mettre dans un tableau qui fera donc 526 lignes par 100 colones (chaque colone represente un chantier et chaque ligne reprend la quatité utilisé sur le chantier)



Déjà, je sais faire cela quand cela reste dans le meme fichier xls en utilisant concatener
j'ai crée cette ligne pour prendre la valeur de i23 dans l'onglet test (j'ai ecris test dans B4) et en allongeant cette formule vers la droite je peux donc recuperer toutes les infos des onglets present ecrit à la droite de B4.
=INDIRECT(CONCATENER("'";B$4;"'";"!";"i23"))

cependant quand je passe à ecrite le chemin complet du fichier en nom juste l'onglet cela ne fonctionne plus.


en ecrivant ceci en F22 : j'obtient que excel affiche ce que j'ai ecrit (logique j'ai mis un ' devant)
'Q:\SOULA\NOUVEAU SOULA\CO - COMMERCIAL\02-BORDEREAU CHIFFRAGE\MCFS-2009\Dossier principal\version avec prix pylônes\2005\[Abbeville-ville-le marclet.xls]abbeville'!i23
si je rajoute un = devant, alors j'obtiens la valeur souhaité.

j'ai essayé de faire =CONCATENER("=";F22)
j'obtient :
='Q:\SOULA\NOUVEAU SOULA\CO - COMMERCIAL\02-BORDEREAU CHIFFRAGE\MCFS-2009\Dossier principal\version avec prix pylônes\2005\[Abbeville-ville-le marclet.xls]abbeville'!i23

je n'obtiens pas la valeur de la cellule i13 de l'onglet abbeville du fichier abbeville-le marclet


j'ai essayé de faire =INDIRECT(CONCATENER("=";F22))
mais j'obtient #REFF


ce que j'aimerais c'est dans mon futur tableau, faire manuelement ligne par ligne le lien vers la cellule à copier, puis ecrire pour les 100 colones le lien du fichier et allonger le tout vers la droite pour tous faire d'un coup.

j'espere avoir été clair, je peux envoyer mon fichier excel pour plus de clareté.
cela fait déjà 1 semaine que je ne peux plus rien faire, et si je le fais à la main je vais mettre deux semaines.

PS : je ne connais rien de rien de rien au VB

Très cordialement
Guillaume



c'est un peu la même requete que ça (mais en different):
http://www.commentcamarche.net/forum/affich 2457567 excel concatener plusieurs fichiers
A voir également:

2 réponses

Ben le vb c'est pas compliqué.
Il faut décomposer :

Initialiser une variable i à 2
i est en fait le numero de la colonne dans laquelle tu vas copier les données

Lister les fichiers xls du répertoire
Ouvrir le fichier
Copier les cellules de 1 à 526
Afficher la feuille de destination
Coller les cellules dans la colonne i
fermer le fichier
Fin de liste
Sauvergarder la feuille destination



Ca donne :
Dim i as integer
Dim File_Is As String
i=2
Direc = "'Q:\SOULA\NOUVEAU SOULA\CO - COMMERCIAL\02-BORDEREAU CHIFFRAGE\MCFS-2009\Dossier principal\version avec prix pylônes\2005\"
File_Is = Dir(Direc & "*.xls")
Do Until File_Is = ""
file_xml = Direc & File_Is
'ici copier le contenu
Loop
0
Bonjour Deeper,
bon déjà j'ai compris qu'il fallait que je modifie une macro vide pour y inserer le code fournis,

j'ai donc ça :

Sub Macro3()
Dim i As Integer
Dim File_Is As String
i = 2
Direc = "'Q:\SOULA\NOUVEAU SOULA\CO - COMMERCIAL\02-BORDEREAU CHIFFRAGE\MCFS-2009\Dossier principal\version avec prix pylônes\2005\"
File_Is = Dir(Direc & "*.xls")
Do Until File_Is = ""
file_xml = Direc & File_Is
'ici copier le contenu
Loop
'
'

'
End Sub


je me met dans un nouveau fichier (qui n'est pas dans le même repertoire que mes fichiers cibles)
et je fait macro : executer macro 3
et cette erreur apparait :
erreur 52 :
nom ou numero de fichier incorrect

bon, j'avoue que si en VB ça fonctionne cela va etre bien plus rapide que le concatener tout simple.
et puis sur les 526 ligne j'aurais juste à supprimer celles dont je n'ai pas besoin une fois que tout est fini (plus simple que de trier avant)

vois tu ou est mon erreur ?


Cordialement Guillaume
0
quelqu'un pour mon problème ?

ce n'est pas que je suis impatient, mais vu l'a renomée des membres présents il y a plein de messages qui sont apparus et le mien est tout en bas :-)

j'ai besoin de réussir à faire cette fusion/concatenation,
c'est dure de faire semblant de travailler et encore plus dure de ne pas reussir à faire ce que l'on veut

Guillaume
0