Créer une base de données depuis plusieurs fichiers

Alors voici le chemin du fichier:

N:\32_Transfer\Mon nom\5.formulaires projets clients\Modifiés\Dossier test 2\700626_1695-1_W.xlsm

A+

Les macros corrigées (attention ces macros ne tiennent pas compte de ton chemin de fichier puisque je n'ai pas ton ChDir

Option Explicit

Dim LR As ListRow, TData As ListObject
Sub extraction()
    Dim FileS$
   Set TData = Range("TData").ListObject
    Application.ScreenUpdating = False
    'ChDir "N:\chemin du dossier"
    FileS = Application.GetOpenFilename("Tous les fichiers (*.*),*.*") 'c'est ici que le choix du fichier se faire
   Workbooks.Open FileS, UpdateLinks:=False
   ActiveWorkbook.Sheets("0 Page de garde").Activate

   ReadFiche

End Sub
Sub ReadFiche()
   Dim a, b(26)
   [B5:K75].MergeCells = False
   a = [B5:K75].Value
   b(0) = a(5, 9)
   b(1) = a(3, 1)
   b(2) = a(4, 1)
   b(3) = a(3, 9)
   b(4) = a(4, 9)
   b(5) = a(6, 1)
   b(6) = a(7, 1)
   b(7) = a(9, 1)
   b(8) = a(9, 2)
   b(9) = a(9, 4)
   b(10) = a(19, 1)
   b(11) = a(20, 1)
   b(12) = a(21, 1)
   b(13) = ""
   b(14) = a(23, 1)
   b(15) = a(23, 8)
   b(16) = a(25, 1)
   b(17) = a(26, 1)
   b(18) = ""
   b(19) = ""
   b(20) = a(28, 1)
   b(21) = a(29, 1)
   b(22) = a(30, 1)
   b(23) = ""
   b(24) = ""
   b(25) = ""
   b(26) = ""

   ActiveWorkbook.Close SaveChanges:=False
      On Error Resume Next
      Set LR = TData.DataBodyRange.Delete
      Set LR = TData.ListRows.Add
    LR.Range.Value = b
End Sub

A+

Merci

et ça bloque:

Workbooks.Open FileS, UpdateLinks:=False

Dans 'ChDir "N:\chemin du dossier" il n'y a pas de "\" a la fin c'est ok?

A+

Merci aussi pour ton nouveau code,

Alors bien que plus lent, je préférerais la sélection des cellules, car la je ne comprend mais vraiment rien au Array .

Si ça te dis?

sinon je trouverais surement un truc.

Merci pour ta précieuse aide

et bon weekend.

Andreas

Dans 'ChDir "N:\chemin du dossier" il n'y a pas de "\" a la fin

Si il en faut un.

Alors bien que plus lent, je préférerais la sélection des cellules, car la je ne comprend mais vraiment rien au Array .

Alors ça c'est beaucoup plus ch... on verra ça demain ou dimanche !

Bon WE !

Bonjour Andreas, bonjour Galopin ...

désolé d'arriver un peu tard sur le sujet ! mais j'vais ceci en stock que je suis en train de réviser ... cette version date de 2013 et mérite un lifting

J'ai revu le fichier, pour ton cas, il suffit que tu renseignes les différents paramètres.

Bonjour a tous,

Merci pour vos contributions, je vais voir ce que Steelson m'a proposé pour faire un essai.

Bonne reprise a tous

Andreas

Bonjour Steelson,

J'ai essayé avec ton code, et il reste en boucle sur des cellules.

Il me semble qu'il doit chercher des valeurs dans des colonne entières.

J'ai surement pas du adapter tous les paramètres.

Les données a recueillir n'ont pas d'en-têtes dans leurs fichier, ce sont des informations dispersées dans une feuille comme dans un formulaire.

Le but final, c'est de pouvoir utiliser ces données pour un publipostage (Protocoles de réception de projet).

Dans le fichier joint, j'ai repris le principe, mais je suis incapable d'y mettre un code.

Merci

J'ai révisé entre temps mon code ... https://forum.excel-pratique.com/viewtopic.php?f=3&t=141457

Je ne peux pas faire directement des opérations comme B8&"-0"&D8

Voici un test, j'ai dupliqué 2 fois le fichier source

Les données résultat sont en tableau

5extracteur.zip (153.55 Ko)

RE,

c'est magnifique, merci !

Peut-on supprimer les colonne A et B, j'en ai pas besoin.

Si le N° projet existe déjà, il recopie quand même ?

Vraiment, c'est ce que j'avais besoin.

Merci beaucoup

Amicalement

Andreas

Re,

Encore une question, que dois-je mettre dans la cellule "B8" racine fichiers source (i.e. fiche_) ?

Mon fichier source a pour nom: 700626_1695-1_W_Dcpte.xlsm

Décomposition du nom: 700626(N° projet)_1695-1(N° bâtiment)_W_Dcpte.xlsm(Identique a chaque fichiers).

Merci d'avance

Andreas

Pour les colonnes :

Oui pour la colonne A, tu positionnes en fait le tableau là où tu veux, le programme suivra !

Pour la colonne B, il faudrait retoucher au programme, sinon supprime manuellement après chaque compil !

Je ne souhaites pas entretenir plusieurs versions. Mais je réfléchirai quand même à mettre un paramètre pour indiquer si on veut le lien ou pas avec le fichier source.

Pour B8 :

Cela ne sert que si tu veux, dans un lot de fichiers, ne retenir que les fichiers commençant tous par un prefixe. Cela m'est arrivé quand dans un lot d'essais de moteurs, nous ne voulions retenir que le modèle XXXXXX sachant que les fichiers étaient identifiés par XXXXXX -SN12345-202005611.xlsx

Donc je pense que tu dois laisser vide cette zone B8

Merci pour ta rapide réponse,

comme il y a plusieurs fichiers excel dans les dossiers, je dois filtrer avec "Sufix" _W_Dcpte.xlsm

sinon il me donne pleins de données inutiles!

A+

Merci

S'il s'agit d'un suffixe, change cette ligne de programme

            If Left(fichier.Name, 2) <> "~$" And Left(fichier.Name, nbcarprefixe) = prefixe Then

en

            If Left(fichier.Name, 2) <> "~$" And fichier.Name Like "*" & prefixe & "*" Then

Cela fait partie aussi des modifications que je vais apporter.

Sinon, tu peux aussi filtrer sur la colonne qui indique le fichier source !

Super, ça fonctionne a merveille.

Merci

Comme le lien du fichier n'est pas inutile, peut-on le mettre en fin de ligne?

Un génie est a l'oeuvre, je m'incline!

Andreas

Un génie est a l'oeuvre, je m'incline!

non, juste un peu de persévérance et de motivation ... quand il faut faire l'analyse de 1500 résultats d'essai, on se retrousse les manches et on agite les neurones.

J'ai tenu compte de tes suggestions :

  • préfixe remplacé par un terme contenu dans le nom du fichier, qu'il soit eu début, au milieu ou à la fin
  • en option le lien vers le fichier source
  • et si oui il est mis à droite

Merci pour tes remarques.

Bonjour le fil, bonnjour le forum,

Un génie est a l'oeuvre, je m'incline!

non, juste un peu de persévérance et de motivation ... quand il faut faire l'analyse de 1500 résultats d'essai, on se retrousse les manches et on agite les neurones.

Un génie ! Je confirme...

RE,

Merci pour ce top job!

Il me reste encore a trouver une solution pour éviter de recréer une ligne qui existe déjà (Doublon)

Vraiment, MERCI a vous deux pour cette aide précieuse.

Salutations

Andreas

PS: Je vais mettre ce sujet comme clôturé car ça marche très bien

Rechercher des sujets similaires à "creer base donnees fichiers"