Extraction valeur à partir de plusieurs fichiers Excel 2010

hroeckel Messages postés 3 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 3 septembre 2011 - 1 sept. 2011 à 12:35
hroeckel Messages postés 3 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 3 septembre 2011 - 3 sept. 2011 à 08:35
Bonjour à tous, je vais essayer d'expliquer mon problème afin d'être plus explicite que dans le titre.
je souhaiterais extraire les valeurs de certaines cellules qui se trouvent dans plusieurs fichiers différents afin de les analyser pour en tirer des statistiques.
La quantité de ces fichiers est importantes puisqu'elle dépasse la centaine par repertoire. Je précise que les cellules que je souhaite regrouper dans un fichier de synthèse sont toujours au même emplacement dans chaque classeur Excel.
J'aimerais si possible donner des intervales de date pour l'extraction pour faire une analyse mensuelle.
J'ai effectué plusieurs recherche et j'ai trouvé des demandes un peu similaires mais l'adaptation que j'en ai faite, n'a pas fonctionnée.
Les fichiers doivent pouvoir s'ouvrir et se refermer automatiquement biensur.
Voilà j'espère que ce sujet retiendra l'attention de certains et merci d'avance pour votre aide.

5 réponses

tutajim2000 Messages postés 11 Date d'inscription dimanche 26 septembre 2010 Statut Membre Dernière intervention 14 septembre 2011
1 sept. 2011 à 13:03
Bonjour,

J ai déjà fait un programme pareil mais pour 5 fichiers excel en utilisant une macro à partir d'un fichier excel indépendant. Le fichier indépendant alimentait au final une presentation PPT.
J'ai plusieurs questions :
- Souhaites tu une application VB ou une macro VBA via excel ?
- As tu des exemples de code qu'on pourrait debugger ? Peux etre que c'est une petite erreur ...
- Combien de fichiers as tu environ (est ce un nombre de fichiers variable ou fixe) ?
- Est ce que ces données transitent par une autre application genre BPC ...)

Ca en fait beaucoup des question
OK, je m'arrete là.

Salut !!!!

----------------------------------------------------------------------------------------
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 sept. 2011 à 13:31
Salut

Il faut résoudre chaque problème un à un.
Il faut savoir faire toutes ces tâches :
- une boucle For-Next ou Do-Loop
- lister les fichiers d'un répertoire
- lister les sous-répertoires d'un répertoire
- ouvrir un fichier Excel
- lister les feuilles qu'il renferme
- sélectionner une feuille
- rechercher une cellule dans une feuille
- lire le contenu d'une cellule

Que ne sais-tu pas faire ?
As-tu cherché des solutions à chacune de ces tâches parmi les précédentes questions du forum ou parmi les sources du site ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
hroeckel Messages postés 3 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 3 septembre 2011
1 sept. 2011 à 16:36
Dans un premier temps merci de vous interresser à mon problème. je vais essayer de répondre aux différentes questions qui m'on été posé. Je ne connais pratiquement pas le VBA je suis de l'époque des macros sur Excel 4. Je me suis juste amusé a faire des petites fonction en enregistrant des macros ou en modifiant simplement des codes que j'ai trouvé sur le forum. Dans ce cas précis c'est plus compliqué pour moi.
Je ne sais pas ce qui est le plus pratique entre le VB et le VBA mais pour ce qui me concerne je pense qu'il serait plus judicieux si je souhaite entrer dans le code que ce soit en VBA.
Pour les exemples voici ce que j'ai trouvé et que j'ai essayé d'adapter:

Sub importDonnees()
Dim principal As ThisWorkbook
Dim repertoire As String, fichier As String
Application.ScreenUpdating = False
Set principal = ThisWorkbook
repertoire = "C:\Users\HR.GFHSDOM1\Dropbox\Griesser\HN Groupe au 22-07-11\jusqu'à avril 2011"
ChDir repertoire
fichier = Dir("*.xls")
Do While fichier <> ""
If fichier <> principal.Name Then
Workbooks.Open fichier
On Error GoTo suivant
With Sheets("FO_523 e")
On Error GoTo 0
On Error Resume Next
.[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
.[A:A].Insert Shift:=xlToRight
.Range("A1:A" & .[b65536].End(xlUp).Row) = Left(fichier, Len(fichier) - 4)
.UsedRange.EntireRow.Copy Destination:=principal.Sheets(1).[a65536].End(xlUp).Offset(1)
End With
ActiveWorkbook.Close False
End If
suivant:
If Err.Number = 9 Then MsgBox "Pas de feuille ""synth"" dans le fichier " & fichier, vbExclamation: ActiveWorkbook.Close False
fichier = Dir
Loop
End Sub


j'ai donc un repertoire C:\Users\HR.GFHSDOM1\Dropbox\Griesser\HN Groupe au 22-07-11\jusqu'à avril 2011 dans lequel se trouve des centaines de fichiers Excel généré par nos commerciaux. je souaite extraire des valeurs pour faire des statistiques.
Je pense que le problème se situe dans cette partie :
.[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
.[A:A].Insert Shift:=xlToRight
.Range("A1:A" & .[b65536].End(xlUp).Row) = Left(fichier, Len(fichier) - 4)

je ne sais pas lui dire de copier la valeur de telle ou telle cellule et la coller dans mon document de synthèse à tele endroit.
La cerise sur le gateau serait de lui donner une periode pour faire mes stats tous les mois.
J'espère avoir été clair et encore merci de votre aide.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
1 sept. 2011 à 17:43
Bonjour,
J'avais répondu sur un sujet similaire de recherche de mots dans des classeurs Excel.
En modifiant le code et en mettant les cellules à rechercher, je pense que cela pourrait aider:

http://www.vbfrance.com/forum/sujet-MARCO-RECHERCHE-DANS-WINDOWS_1488190.aspx

@+ Le Pivert
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hroeckel Messages postés 3 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 3 septembre 2011
3 sept. 2011 à 08:35
bonjour et merci, je vais essayer de voir ce sujet et le modifier en fonction de mon besoin.
merci
0
Rejoignez-nous