![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2005
Localisation: Noyer En Ouche
Version Excel : Excel 2000 (PC)
Messages: 182
|
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. |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: septembre 2007
Localisation: EVREUX
Version Excel : Excel 2003 (PC)
Messages: 779
|
__________________
Salutations Eric Site XL : http://ericrenaud.fr Vous êtes passionés d'Excel, vous appréciez ce forum pour les services qu'il vous rend alors n'hésitez pas à l'aider ... Oui je veux aider Excel Downloads alors je clique sur le lien ... http://www.excel-downloads.com/forum...orter-xld.html ![]() Soutenez l'association Naevi
|
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2005
Localisation: Noyer En Ouche
Version Excel : Excel 2000 (PC)
Messages: 182
|
Merci RENAUDER
Mais je n'y ai pas trouvé mieux que sur un lien francophone Formation Excel VBA JB A suivre |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Barbatruc
|
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 |
|
|
|
|
|
#5 (permalink) | |
|
XLDnaute Occasionel
Date d'inscription: mars 2005
Localisation: Noyer En Ouche
Version Excel : Excel 2000 (PC)
Messages: 182
|
Citation:
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. @+ |
|
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2008
Localisation: Bxl
Version Excel : Excel 2003 (PC)
Messages: 210
|
Bonjour tlm,
Peut-être que les deux liens ci-dessous te mettront sur la piste, le premier te permettra de voir comment boucler sur tous les fichiers d'un répertoire et le second comment extraire des données d'un fichier fermé. Bonne lecture ![]() FAQ MS-Excel - Club d'entraide des développeurs francophones Lire et écrire dans les classeurs Excel fermés - Club d'entraide des développeurs francophones |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Accro
Date d'inscription: septembre 2007
Messages: 1 508
|
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
Formation Excel VBA JB Dernière modification par BOISGONTIER ; 27/03/2008 à 11h56. |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2005
Localisation: Noyer En Ouche
Version Excel : Excel 2000 (PC)
Messages: 182
|
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 |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2005
Localisation: Noyer En Ouche
Version Excel : Excel 2000 (PC)
Messages: 182
|
Salut JB
Question subsidiaire : c'est quoi ce [IV1] dans le code? Merci Code:
...
Do While Fichier <> ""
[IV1].End(xlToLeft).Select
...
Loop
|
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2005
Localisation: Aubenas
Version Excel : Excel 2000 (PC)
Messages: 1 128
|
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 !)
__________________
A+ Michel_M |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Accro
Date d'inscription: septembre 2007
Messages: 1 508
|
[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
|
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2005
Localisation: Noyer En Ouche
Version Excel : Excel 2000 (PC)
Messages: 182
|
[quote=BOISGONTIER;523182][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 |
|
|
|
|
|
#13 (permalink) |
|
XLDnaute Accro
Date d'inscription: septembre 2007
Messages: 1 508
|
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
|
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Mise à jour automatique TCD dans fichiers fermés | barbara | Forum Excel | 5 | 08/05/2006 22h25 |
| Données dans fichiers fermés | marco57 | Forum Excel | 0 | 19/08/2005 19h13 |
| aide pour copier plage de cellules de fichiers fermés | gilles21 | Forum Excel Downloads - Archives | 5 | 16/02/2005 23h27 |
| [XL to Access] Base de données Gestion Importation Fichiers Longueur Fixe | jon | Forum Excel Downloads - Archives | 0 | 30/03/2004 17h07 |
| operation sur fichiers fermés | franck | Forum Excel Downloads - Archives | 0 | 07/02/2004 18h32 |