Importation de données a partir de fichiers fermés

  • Initiateur de la discussion Initiateur de la discussion Risleure
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Risleure

XLDnaute Occasionnel
Bonjour le Forum,

Je me suis perdu dans les méandres de l'importation de données à partir d'une série de fichiers fermés et pourtant il y a beaucoup à lire sur ce sujet....mais trop fort 😀 car je n'arrive pas à boucler sur l'ensemble des fichiers du répertoire.

Voila, je possède dans un répertoire une série d'environ 200 fichiers (Idéalement il faudrait pouvoir les compter avant de commencer). Partons de l'hypothèse qu'il n'y aura jamais plus de 255 fichiers à lire !!

La structure de ces fichiers est toujours la même : le nom du fichier est toujours "Fichierxxx" avec xxx représentant l'indice de 1 à 200 (si 200 est le nombre de fichiers comptés précedemment), le fichier contient au moins un onglet mais un seul nommé "spectre" et dans cet onglet "spectre" quatre colonnes avec un nombre de lignes variable.

Je souhaite dans un feuille vide d'un fichier, copier les valeurs de la colonne B (et uniquemnt celle ci) du fichier "Fichierxxx" dans l'onglet "spectre" et les coller dans la première colonne vide du fichier actif puis boucler cette action sur l'ensemble des fichiers de type "Fichierxxx" du répertoire avec une incrémentation.

J'espère avoir été clair. Merci d'avance pour votre aide.
 
Re : Importation de données a partir de fichiers fermés

Salut Risleure
Bonjour Eric
Bonjour le Forum

arff je n'ai pas le temps maintenant,mais questions
le fichier ou tu veux placer les données récupérées se trouve til dans le même répertoire que les fichiers Sources(Fichierxxx) "connaitre le nombre de ces fichiers à l'avance n'est pas utile"

si non as tu le chemin d'accès de ce répertoire ?
je suis le fil ,mais pas le temps pour aujourd'hui Lol

y'aura surement quelqu'un pour t'aider d'ici demain Lol

Bonne journée
 
Re : Importation de données a partir de fichiers fermés

...
le fichier ou tu veux placer les données récupérées se trouve til dans le même répertoire que les fichiers Sources(Fichierxxx) "connaitre le nombre de ces fichiers à l'avance n'est pas utile"

si non as tu le chemin d'accès de ce répertoire ?
...

Salut Chti160, le Forum

Le fichier peut être dans le même répertoire ou bien je peux récupèrer le chemin.
Mais faisons simple disons qu'il est dans le même répertoire....et si j'ai pas besoin de compter alors j'attends ta soluce.

@+
 
Re : Importation de données a partir de fichiers fermés

Bonjour,

Code:
Sub LitClasseurFermé()
  Chemin = ThisWorkbook.Path
  Fichier = Dir(Chemin & "\" & "fichierxxx*")
  Do While Fichier <> ""
    [IV1].End(xlToLeft).Select
    If ActiveCell <> "" Then ActiveCell.Offset(0, 1).Select
    ChampOuCopier = ActiveCell.Resize(100, 1).Address ' "A1:A100"
    onglet = "Screptre"
    ChampAlire = "B1:B100"
    LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
    Fichier = Dir
  Loop
End Sub

Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
   Range(ChampOuCopier).FormulaArray = "='" & Chemin & "\[" & Fichier & "]" & onglet & "'!" & ChampAlire
   Range(ChampOuCopier) = Range(ChampOuCopier).Value
End Sub

JB
Formation Excel VBA JB
 
Dernière édition:
Re : Importation de données a partir de fichiers fermés

Merci JB, FTHO

JB : c'est un très bon début et après qqs ajustements, j'ai un début d'importation satisfaisant. Il me reste que la taille du champ à lire ou à copier est variable (> 300 ligbnes) et si je mets 1000, je me retrouve avec plein de 0. il faut que j'arrive à le connaitre avant de commencer l'import.

Les liens de FTHO vont peut être me permettre de peaufiner.

Merci
 
Re : Importation de données a partir de fichiers fermés

Bonjour,

Et à quoi a servi la réouverture des Wiki dans la FAQ ?

Voir wikimichelXLDpage6

Ce problème a été traité: récupération de de cellules groupées ou non dans des onglets dans N fichiers fermés dans un répertoire
Travail fait par collaboration de forumeurs (salut @}Thierry, Michel_XLD !)
 
Re : Importation de données a partir de fichiers fermés

[IV1].End(xlToLeft).Select pour se positionner sur le derniere colonne


Code:
Sub LitClasseurFermé()
  Application.ScreenUpdating = False
  Chemin = ThisWorkbook.Path
  Fichier = Dir(Chemin & "\" & "fichierxxx*")
  Do While Fichier <> ""
    [IV1].End(xlToLeft).Select
    If ActiveCell <> "" Then ActiveCell.Offset(0, 1).Select
    ChampOuCopier = ActiveCell.Resize(100, 1).Address ' "A1:A100"
    onglet = "Screptre"
    ChampAlire = "B1:B100"
    LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
    For Each c In Range(ChampOuCopier)
      If c.Value = 0 Then c.Value = Empty
    Next c
    Fichier = Dir
  Loop
End Sub

JB
 
Re : Importation de données a partir de fichiers fermés

[IV1].End(xlToLeft).Select pour se positionner sur le derniere colonne

Merci, j'avais fini par trouver .... grace aux encouragements amiacux de michel_m, en fait je connaissais l'astuce de recherche de la dernière ligne en partant du bas de la feuille et je n'avais pas fait le rapprochement que IV était la dernière colonne de la feuille.

Bon j'ai un autre gros soucis car les noms de fichiers sont "Fichierx" pour les fichiers de 1 à 9, "Fichier xx" pour les fichiers de 10 à 99 et "Fichierxxx" au dela. je ne sais pas trier horizontalement car j'ai modifié ton code en important sur la 1ere ligne le nom du fichier 😉. la recherche sur le Forum est infructueuse.
Je ne peux tarnsposer pour trier verticalement car j'ai plus de 300 valeurs qui se retrouveraient sur seulement 256 colonnes.

Merci
 
Re : Importation de données a partir de fichiers fermés

On lit le nombre de lignes de la colonne B en IV1 avec:

[IV1].FormulaLocal = "=NBVAL('" & Chemin & "\[" & Fichier & "]Screptre'!$B:$B)"


Code:
Sub LitClasseurFermé()
  Application.ScreenUpdating = False
  Chemin = ThisWorkbook.Path
  Fichier = Dir(Chemin & "\" & "fichierxxx*")
  Do While Fichier <> ""
    [IV1].FormulaLocal = "=NBVAL('" & Chemin & "\[" & Fichier & "]Screptre'!$B:$B)"
    [IU1].End(xlToLeft).Select
    If ActiveCell <> "" Then ActiveCell.Offset(0, 1).Select
    ChampOuCopier = ActiveCell.Resize([IV1], 1).Address ' "A1:A100"
    onglet = "Screptre"
    ChampAlire = "B1:B" & [IV1]
    LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
    Fichier = Dir
  Loop
End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
   Range(ChampOuCopier).FormulaArray = "='" & Chemin & "\[" & Fichier & "]" & onglet & "'!" & ChampAlire
   Range(ChampOuCopier) = Range(ChampOuCopier).Value
End Sub

JB
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour