OVH Cloud OVH Cloud

Reprise de donnée simplifiée

4 réponses
Avatar
Jean-Marc
Bonjour

Je d=E9sire savoir comment je peux extraire deux champs sur=20
plusieurs fichiers identiques.

J'ai un fichier par client, dans ce fichier j'ai 3=20
feuilles, exemple base de donn=E9es (info sur le client),=20
devis et contrat.

Je voudrais extraire de ses 103 fichiers identiques deux=20
champs. Comment puis-je faire pour faciliter l'extraction=20
sans =EAtre oblig=E9 d'ouvrir les 103 fichiers.

Merci pour votre aide

Jean-Marc

4 réponses

Avatar
isabelle
bonjour Jean-Marc,

voici un exemple pour extraire les cellule A1 et B1 des fichiers
zaza1.xls, zaza2.xls, zaza3.xls du répertoire c:zaza

Sub valeurExterne()
For i = 1 To 3
Range("A" & i) = ExecuteExcel4Macro _
("'c:zaza[zaza" & i & ".xls]Feuil1'!R1C1")
Range("B" & i) = ExecuteExcel4Macro _
("'c:zaza[zaza" & i & ".xls]Feuil1'!R1C2")
Next
End Sub

isabelle


Bonjour

Je désire savoir comment je peux extraire deux champs sur
plusieurs fichiers identiques.

J'ai un fichier par client, dans ce fichier j'ai 3
feuilles, exemple base de données (info sur le client),
devis et contrat.

Je voudrais extraire de ses 103 fichiers identiques deux
champs. Comment puis-je faire pour faciliter l'extraction
sans être obligé d'ouvrir les 103 fichiers.

Merci pour votre aide

Jean-Marc


Avatar
Jean-Marc
Merci pour cette info, mais malheureusement mes fichiers
comportent des N° comme nom et qui se suivent pas et je
cherchais justement quelque chose qui pouvais m'éviter de
saisir chaque nom fichier.

@plus Jean-Marc

-----Message d'origine-----
bonjour Jean-Marc,

voici un exemple pour extraire les cellule A1 et B1 des
fichiers

zaza1.xls, zaza2.xls, zaza3.xls du répertoire c:zaza

Sub valeurExterne()
For i = 1 To 3
Range("A" & i) = ExecuteExcel4Macro _
("'c:zaza[zaza" & i & ".xls]Feuil1'!R1C1")
Range("B" & i) = ExecuteExcel4Macro _
("'c:zaza[zaza" & i & ".xls]Feuil1'!R1C2")
Next
End Sub

isabelle


Bonjour

Je désire savoir comment je peux extraire deux champs
sur


plusieurs fichiers identiques.

J'ai un fichier par client, dans ce fichier j'ai 3
feuilles, exemple base de données (info sur le client),
devis et contrat.

Je voudrais extraire de ses 103 fichiers identiques deux
champs. Comment puis-je faire pour faciliter
l'extraction


sans être obligé d'ouvrir les 103 fichiers.

Merci pour votre aide

Jean-Marc
.





Avatar
Michel Gaboly
Bonsoir,

Regarde l'aide de FileFind (sur Mac), ou de FileSearch
(sous Win) qui te permet de récupérer le nom des fichiers
d'un répertoire (y compris ou non le contenu de ses sous-
répertoires).

Ensuite une boucle te permettra de récupérer l'info voulue
sans avoir à saisir chaque nom de fichier.



Merci pour cette info, mais malheureusement mes fichiers
comportent des N° comme nom et qui se suivent pas et je
cherchais justement quelque chose qui pouvais m'éviter de
saisir chaque nom fichier.

@plus Jean-Marc

-----Message d'origine-----
bonjour Jean-Marc,

voici un exemple pour extraire les cellule A1 et B1 des
fichiers

zaza1.xls, zaza2.xls, zaza3.xls du répertoire c:zaza

Sub valeurExterne()
For i = 1 To 3
Range("A" & i) = ExecuteExcel4Macro _
("'c:zaza[zaza" & i & ".xls]Feuil1'!R1C1")
Range("B" & i) = ExecuteExcel4Macro _
("'c:zaza[zaza" & i & ".xls]Feuil1'!R1C2")
Next
End Sub

isabelle


Bonjour

Je désire savoir comment je peux extraire deux champs
sur


plusieurs fichiers identiques.

J'ai un fichier par client, dans ce fichier j'ai 3
feuilles, exemple base de données (info sur le client),
devis et contrat.

Je voudrais extraire de ses 103 fichiers identiques deux
champs. Comment puis-je faire pour faciliter
l'extraction


sans être obligé d'ouvrir les 103 fichiers.

Merci pour votre aide

Jean-Marc
.





--
Cordialement,

Michel Gaboly
http://www.gaboly.com



Avatar
Hervé
Salut Jean Marc,
Teste ceci mais d'abord, adapte. Exécute la proc "RecupValeurs" :

Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)

Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If

ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub

Sub RecupValeurs()
Dim ConnectCL As Object
Dim Rs As Object
Dim Chemin As String
Dim Classeur As String
Dim NomFeuille As String
Dim Plage As String
Dim TblClasseur() As String
Dim TblValeur()
Dim I As Integer
Dim J As Integer

'chemin où vont être récupérés les
'classeurs
Chemin = "D:"
'retourne un tableau contenant tous
'les classeurs du dossier
TblClasseur = Fichiers(Chemin, J)

'si aucun classeur dans le dossier, fin
'J est passé en Ref. et sa valeur est ensuite testée
If J = 0 Then
MsgBox "Ancun classeur ne se trouve dans ce dossier !"
Exit Sub
End If

'feuille ou s'effectuera la récup, à adapter
NomFeuille = "Feuil1"
'plage ou s'effectuera la récup, à adapter
'pour une cellule, écrire de la façon
'suivante : "A1:A1"
Plage = "A1:B1"

For I = 1 To UBound(TblClasseur)
'chemin du classeur cible
Classeur = TblClasseur(I)
'connecxion
ConnectCLasseur ConnectCL, Classeur, Rs
ReDim Preserve TblValeur(1 To 2, 1 To I)
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$" & _
Plage & "` ", ConnectCL
TblValeur(1, I) = .Fields(0).Value
TblValeur(2, I) = .Fields(1).Value
End With

ConnectCL.Close
Next I
'récupération des valeurs stockées dans le tableau
For I = 1 To UBound(TblValeur, 2)
Debug.Print TblValeur(1, I) & " " & TblValeur(2, I)
Next I

Erase TblClasseur
Erase TblValeur
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub

Private Function Fichiers(Dossier As String, _
J As Integer) As String()
Dim TableauFichiers() As String
'J est passé en Ref. et si il est incrémenté,
'le dossier contient bien des classeurs
'sinon, le dossier est vide de classeurs
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeExcelWorkbooks
.LookIn = Dossier
If .Execute > 0 Then
For J = 1 To .FoundFiles.Count
ReDim Preserve TableauFichiers(1 To J)
TableauFichiers(J) = .FoundFiles(J)
Next J
End If
End With
Fichiers = TableauFichiers()
End Function

Hervé.

"Jean-Marc" a écrit dans le message news:
6ba401c48393$330abf30$
Bonjour

Je désire savoir comment je peux extraire deux champs sur
plusieurs fichiers identiques.

J'ai un fichier par client, dans ce fichier j'ai 3
feuilles, exemple base de données (info sur le client),
devis et contrat.

Je voudrais extraire de ses 103 fichiers identiques deux
champs. Comment puis-je faire pour faciliter l'extraction
sans être obligé d'ouvrir les 103 fichiers.

Merci pour votre aide

Jean-Marc