extraire données dans plusieurs classeur fermé excel

max59

XLDnaute Nouveau
Bonjour,

Pour mon travail, il m'est demandé d'extraire une colonne de valeurs excel non nuls se trouvant dans plusieurs documents excel qui se trouvent dans un même dossiers (c'est fichiers ont la même forme et même nom d'onglet)et de les insérer dans un autre classeur.excel sous forme de liste afin d'établir un pareto. Je voudrai que tous les fichiers dont j'extrais les valeurs soit fermés.

Quelqu'un pourraît-il m'aider, je vous remercie?
 

youky(BJ)

XLDnaute Barbatruc
Re : extraire données dans plusieurs classeur fermé excel

Bonjour Max,
Faire les rectifs pour NomFichier et NomOnglet
Non testé
Bruno
Code:
sub essaicopie
Set Wb = GetObject(ThisWorkbook.Path & "\NomFichier1.xls")
range("A2:A100").value=Wb.Sheets("NomOnglet").Range("A2:A100").value
Wb.Close
Wb=Nothing
Set Wb = GetObject(ThisWorkbook.Path & "\NomFichier2.xls")
range("A102:A200").value=Wb.Sheets("NomOnglet").Range("A2:A100").value
Wb.Close
End sub
 

max59

XLDnaute Nouveau
Re : extraire données dans plusieurs classeur fermé excel

Merci pour cette info,
Je précise ma demande en faite, tous mes documents à extraire se trouvent dans un répertoire commun.Et je voudrai extraire tous les données se trouvant dans tous ses classeurs (sous le même onglet) afin de les rassembler dans un classeur extérieur pour créer ma liste.

je met en pièce joints, un exemple de ma demande. Les fichiers (1.2.3) sont dans le même dossiers
 

Pièces jointes

  • liste.xls
    13.5 KB · Affichages: 303
  • fichier3.xls
    13.5 KB · Affichages: 266
  • fichier2.xls
    13.5 KB · Affichages: 265
  • fichier1.xls
    13.5 KB · Affichages: 327
  • liste.xls
    13.5 KB · Affichages: 335
  • fichier3.xls
    13.5 KB · Affichages: 262
  • fichier2.xls
    13.5 KB · Affichages: 260
  • fichier1.xls
    13.5 KB · Affichages: 312
  • liste.xls
    13.5 KB · Affichages: 324
  • fichier3.xls
    13.5 KB · Affichages: 214
  • fichier2.xls
    13.5 KB · Affichages: 238
  • fichier1.xls
    13.5 KB · Affichages: 275
Dernière édition:

joelpelle

XLDnaute Junior
Re : extraire données dans plusieurs classeur fermé excel

Bonjour Max, bonjour le forum,

Je vais te donner une piste pour copier des onglets de fichiers fermés.
L'astuce étant de les ouvrir, les copier et les fermer en arrière plan, sans qu'ils s'affichent à l'écran.
Il faut pour cela que ces fichiers soient si possible dans un même dossier (plus simple à écrire le code) et ça a l'air d'être le cas.
C'est un bon départ qui fonctionne bien et plutôt rapide : tu copies des onglets et les insères où tu veux dans ton nouveau fichier.
A toi ensuite d'adapter pour ton besoin final.
Le code de la macro : (y'a surement mieux, mais ça a le mérite de bien fonctionner ! )

Sub copie_feuille()
Application.ScreenUpdating = False
Dim Msg, Style, Title, Response, MyString
Msg = "Souhaitez-vous continuer?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "IMPORTATION DES ONGLETS " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
Application.DisplayAlerts = False
On Error Resume Next
Workbooks.Open Filename:="C:\XXX\Yyyyy.xls"
'inscrire le chemin complet et exact du fichier à ouvrir (Yyyy.xls)
Workbooks("Yyyy.xls").Activate
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
Range("A1").Select
ActiveWindow.Zoom = 100
ActiveWindow.View = xlNormalView
Sheets("nom de la feuille à copier").Copy After:=Workbooks("ZZZ nom du fichier où coller.xls"). _
Sheets(1)
Workbooks("Yyyy.xls").Close
Application.DisplayAlerts = False
On Error Resume Next

Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
End If
Sheets("ZZZ").Activate 'feuille où sont copiées les données
Application.ScreenUpdating = True
End Sub
'reprendre le même schéma pour toutes les feuilles à copier à partir de Application.DisplayAlerts = False
On Error Resume Next
Workbooks.Open Filename




Ca peut être une piste.

Cordialement

Joël
 

joelpelle

XLDnaute Junior
Re : extraire données dans plusieurs classeur fermé excel

Bonjour Max,

J'ai mis un bouton et une macro sur le fichier liste pour importer les onglets de tes fichiers 1 2 et 3.

Tu dois modifier la macro en modifiant le chemin d'accès à ces fichiers.
Je les ai enregistré dans mon ordi sous c:\Max59\fichier1.xls , à toi de modifier le chemin pour les 3 fichiers dans la macro. Alt et F11 C étant mon disque dur, Max59 le dossier où sont stockés les fichiers, et fichier1.xls le nom du fichier. Respecte bien le chemin avec des \ et non des /

Tu cliques ensuite sur le bouton importer et ça fonctionne.

Pour le reste, regrouper les données des onglets sur une seule colonne, c'est le problème que je rencontre actuellement, si quelqu'un avait la solution, ça m'aiderait aussi.

N'hésite pas si tu as un soucis, le forum m'a bien aidé, il est normal de rendre la pareille quand on le peut.

Cordialement

Joël
 

Pièces jointes

  • liste.xls
    37.5 KB · Affichages: 527
  • liste.xls
    37.5 KB · Affichages: 543
  • liste.xls
    37.5 KB · Affichages: 472
Dernière édition:

max59

XLDnaute Nouveau
Re : extraire données dans plusieurs classeur fermé excel

Bonjour Max,

J'ai mis un bouton et une macro sur le fichier liste pour importer les onglets de tes fichiers 1 2 et 3.

Tu dois modifier la macro en modifiant le chemin d'accès à ces fichiers.
Je les ai enregistré dans mon ordi sous c:\Max59\fichier1.xls , à toi de modifier le chemin pour les 3 fichiers dans la macro. Alt et F11 C étant mon disque dur, Max59 le dossier où sont stockés les fichiers, et fichier1.xls le nom du fichier. Respecte bien le chemin avec des \ et non des /

Tu cliques ensuite sur le bouton importer et ça fonctionne.

Pour le reste, regrouper les données des onglets sur une seule colonne, c'est le problème que je rencontre actuellement, si quelqu'un avait la solution, ça m'aiderait aussi.

N'hésite pas si tu as un soucis, le forum m'a bien aidé, il est normal de rendre la pareille quand on le peut.

Cordialement

Joël

Merci pour ton aide.
Quand je lance la macro celle-ci m'appelle le fichier alors que moi c'est extraire directement que je veux faire.
 

max59

XLDnaute Nouveau
Re : extraire données dans plusieurs classeur fermé excel

Erreur de ma part, la macro fonctionne merci. mais il m'extrait les données dans des onglets différents alors que je voudrai les mettre en liste et de plus je voudrai enlevé les différentes cellule vide
 

joelpelle

XLDnaute Junior
Re : extraire données dans plusieurs classeur fermé excel

Bonjour Max,

J'ai bien compris ton problème, a savoir récupérer les données et les mettre sur une seule colonne sans ligne vide.
C'est également ce que je cherche à faire, mais je bloque pour l'instant.
Ma macro te permets déjà de récupérer tes données dans un seul fichier, il ne reste plus qu'a trouver la solution pour tout regrouper.

Peut être qu'un" balèze" va passer par là et nous donner la solution.

Excel-Lent, Hasco, Efjé z'êtes pas par là par hazard ???!!!

Si j'ai une solution, je te fais signe, je continue à chercher.

Cordialement

Joël
 

joelpelle

XLDnaute Junior
Re : extraire données dans plusieurs classeur fermé excel

Re Max,

Un peu têtu et persévérant, il le faut avec le VBA, je te propose la solution que tu souhaitais.

Il faut re-modifier le chemin des fichiers par rapport à ton ordi.

On récupère les données des différents fichiers (toujours les mêmes colonnes B:B ) et on les intègre dans le fichier liste en triant les valeurs par ordre grandissant et on supprime les lignes vides.
Regarde le code pour modifier la quantité de lignes que tu souhaites intégrer, j'ai mis 1000 par défaut.

Ca te va ???

Cordialement

Joël
 

Pièces jointes

  • liste.xls
    41 KB · Affichages: 484
  • liste.xls
    41 KB · Affichages: 522
  • liste.xls
    41 KB · Affichages: 551

max59

XLDnaute Nouveau
Re : extraire données dans plusieurs classeur fermé excel

Re Max,

Un peu têtu et persévérant, il le faut avec le VBA, je te propose la solution que tu souhaitais.

Il faut re-modifier le chemin des fichiers par rapport à ton ordi.

On récupère les données des différents fichiers (toujours les mêmes colonnes B:B ) et on les intègre dans le fichier liste en triant les valeurs par ordre grandissant et on supprime les lignes vides.
Regarde le code pour modifier la quantité de lignes que tu souhaites intégrer, j'ai mis 1000 par défaut.

Ca te va ???

Cordialement

Joël

Merci pour ton aide.

La macro m'extraits que le fichier n°1 et en plus que l'onglet n°1 alors que c'est plutôt l'onglet n°7 qui me faudrait.
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg