FileSearch

CAP

XLDnaute Occasionnel
Bonjour tout le monde,

J'ai besoin de récupérer des infos de différents fichiers stockés dans le même répertoire. Le problème est que je n'arrive pas à faire ce que je veux avec les fichiers ouverts, j'arrive à copier une cellule et la coller dans un autre classeur mais je n'arrive pas par exemple à inscrire quelque chose dans ce classeur.
Voici le code utilisé (le code pour l'ouverture des classeurs est de L. Longre) :

Dim F
Dim bilan as Workbook
Dim feuille as Worksheet

Set bilan = Workbooks('bilan')
Set feuille = bilan.Worksheets('Feuil1')

With Application.FileSearch
.NewSearch
.LookIn = 'K:\\Repertoire_source\\test'
.Execute
On Error Resume Next
For Each F In .FoundFiles

Workbooks.Open F

F.Cells(1, 1).Select
Selection.Copy
bilan.Activate
feuille.Activate
feuille.Cells(1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Next F
End With

Je dois avoir un problème de déclaration de variable.
Merci par avance pour votre aide et bonne journée à tous,
 

Hervé

XLDnaute Barbatruc
bonjour :)

un essai :

Dim F
Dim bilan As Workbook
Dim feuille As Worksheet

Set bilan = Workbooks('bilan.xls') 'extension
Set feuille = bilan.Worksheets('Feuil1')

With Application.FileSearch
.NewSearch
.LookIn = 'K:Repertoire_sourcetest'
.Execute
'On Error Resume Next
For Each F In .FoundFiles

Workbooks.Open F
ActiveWorkbook.Sheets(1).Cells(1, 1).Copy 'precision de la feuille
bilan.Activate
feuille.Activate
feuille.Cells(1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Next F
End With


salut
 

CAP

XLDnaute Occasionnel
Merci Hervé, ça marche mieux en effet mais je n'arrive pas à réactiver le classeur F. Si à la suite du code je veux récupérer d'autres valeurs de ce classeur, et que je code
F.Activate
ActiveWorkbook.Sheets(1).Cells(10, 1)

il ne comprend pas le F. Activate

Saurais-tu pourquoi ?

Merci
 

Hervé

XLDnaute Barbatruc
re

la variable F n'est pas un fichier, mais simplement un string stockant le chemin du fichier.

Workbooks.Open F
Set fichier = ActiveWorkbook
fichier.Sheets(1).Cells(1, 1).Copy

ici tu stock le fichier ouvert dans la variable fichier, et tu pourras donc refaire appel à lui.

fichier.activate

salut
 

Discussions similaires

Statistiques des forums

Discussions
312 151
Messages
2 085 783
Membres
102 973
dernier inscrit
docpod