Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Récupérer les données dans un autre classeur excel

  • Initiateur de la discussion Initiateur de la discussion leagrim
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

leagrim

XLDnaute Nouveau
Bonjour,

J'ai fais le tour du forum mais je n'arrive pas à créer ma propre macro qui me permettrait de récupérer (dans un fichier autre que celui ouvert) les notes des élèves.

Je vous joins un exemple des fichiers pour que ce soit plus claires.

Pourrez vous m'expliquer la démarche car je dois le faire pour plusieurs années et plusieurs données, donc j'aimerai bien comprendre comment faire.

Je vous remercie d'avance pour votre aide.

Léa
 

Pièces jointes

Re : Récupérer les données dans un autre classeur excel

Bonjour leagrim et bienvenue sur XLD,

j'ai ajouter un module d'un programmeur qui s'appelle Ron de Bruin qui copie les données sans avoir à ouvrir le classeur source.

Si le classeur Fichier notes et stages élèves ne se trouve pas dans le même dossier que Fichier stat, il faut modifier le chemin par le chemin complet où se trouve le classeur source.

Exemple: ThisWorkbook.Path par "C:\Users\lea\Documents\"

Note: comme les classeurs xlsx ne prennent pas en charge les macros, j'ai réengistrer les classeurs avec l'extension .xls et mis en commentaires dans Module1 ce qui faut changer.




A bientôt 😎
 
Dernière édition:
Re : Récupérer les données dans un autre classeur excel


Bonjour,

Merci beaucoup pour ta réponse mais tu n'aurais pas oublié les pièces jointes ? Ou alors j'ai pas compris !!

Léa
 
Re : Récupérer les données dans un autre classeur excel

Bonjour Léa,

je ne sais pas ce qui c'est passé, j'avais mis en .zip les deux classeurs pourtant.

Bon, bein... je vais recommencer.



EDIT: voilà c'est fait. Le Module1 est dans le classeur Fichier stat élèves.


Désolé pour le désagrément.




A+ 😎
 

Pièces jointes

Dernière édition:
Re : Récupérer les données dans un autre classeur excel


Super merci beaucoup, c'est exactement ça que je voulais que a fasse. Sauf que là j'ai mis un fichier test mais je veux créer ça dans mon fichier réel qui est bien plus compter (avec le nom des élèves) et pleins de données à aller chercher dans d'autres fichiers.

Quelle est la démarche à suivre pour que je le fasse seule?
 
Re : Récupérer les données dans un autre classeur excel

Rebonjour Lea,

Voici le code quasi complet, bein oui, c'est toi qui connaît les chemins des classeurs et ce qu'il faut mettre.


Code:
Public chemin(1 To 10) As String
Public fichier(1 To 10) As String
Public feuille(1 To 10) As String
Public cellules(1 To 10) As String

Sub Importation()
'chemin à modifier si le classeur source n'est pas _
dans le même dossier par "C:\Users\lea\Documents\"
chemin(1) = ThisWorkbook.Path
fichier(1) = "\Fichier notes et stages élèves.xls"
'A modifier si la feuille n'est pas la même _
ou si elle a un nom différent
feuille(1) = "Feuil1"
'Là aussi, si plage plus grande.
cellules(1) = "a1:e52"
GetData chemin(1) & fichier(1), feuille(1), cellules(1), _
ActiveSheet.Range("a1"), True, True

chemin(2) = "D:\Dossiers Excel\The Best Of VBA\Commerciaux\"
fichier(2) = "Source.xls"
feuille(2) = "Feuil1"
cellules(2) = "a1:c23"
GetData chemin(2) & fichier(2), feuille(2), cellules(2), _
ActiveSheet.Range("g1"), True, True

chemin(3) = "D:\Dossiers Excel\The Best Of VBA\"
fichier(3) = "Recherche sur 2 critères.xls"
feuille(3) = "Feuil1"
cellules(3) = "b1:b400"
GetData chemin(3) & fichier(3), feuille(3), cellules(3), _
'A modifier selon le nombre de colonnes que tu veux copier
ActiveSheet.Range("q1"), True, True

Call Importation2
End Sub

Sub Importation2()
chemin(1) = "D:\Dossiers Excel\The Best Of VBA\Commerciaux\"
fichier(1) = "Source.xls"
feuille(1) = "Feuil1"
cellules(1) = "d1:e23"
GetData chemin(1) & fichier(1), feuille(1), cellules(1), _
ActiveSheet.Range("j1"), True, True

Call Importation3
End Sub

Sub Importation3()
chemin(1) = "D:\Dossiers Excel\The Best Of VBA\Commerciaux\"
fichier(1) = "Source.xls"
feuille(1) = "Feuil1"
cellules(1) = "f1:i23"
GetData chemin(1) & fichier(1), feuille(1), cellules(1), _
ActiveSheet.Range("l1"), True, True

'ActiveSheet.Columns("A:X").AutoFit
'A inserer dans la dernière macro _
pour ajustement automatique des cellules
End Sub


Pourquoi les doublons dans les Macros?

Parce qu'en mettant tout dans la macro principale, vu qu'il y a plusieurs fois le même chemin et classeur, comme il ne sais pas où allez copier les données, il affiche des message d'erreurs. De plus, comme Excel, on ne peux pas faire une sélection multiple.

Voià, avec ça "tu vas casser la barraque" 😉





A+ 😎
 

Pièces jointes

  • Sans.jpg
    199.8 KB · Affichages: 70
  • Sans.jpg
    199.8 KB · Affichages: 81
  • Sans.jpg
    199.8 KB · Affichages: 78
Dernière édition:
Re : Récupérer les données dans un autre classeur excel


Merci pour ta réponse. J'ai essayer de recopier la macro :

Sub Importation()
chemin(1) = "C:\Users\léa\Google Drive\Cours\3 ème année\Projet math"
fichier(1) = "\note PFE SEP3 promo2013.xls"
feuille(1) = "Enqu_te_insertion_professionnel"
cellules(1) = "a1:be252"
GetData chemin(1) & fichier(1), feuille(1), cellules(1), _
ActiveSheet.Range("a1"), True, True

Call Importation2
End Sub

J'essaie de comprendre ... Là je lui dis bien d'aller chercher dans la fichier "note pfe ..." dans le dossier projet math et dass la feuille enquête insertion ?

A quel moment je lui dis quelle donnée chercher?

Et concernant le fait de chercher la note par rapport au nom, c'est ActiveSheet.Range("a1"), True, True ?

Merci d'avance

Léa
 
Re : Récupérer les données dans un autre classeur excel

Bonsoir Lea,

Concernant fichier(1) = "\note PFE SEP3 promo2013.xls", il faut enlever l'antislash (en gras) et le mettre après Projet math.

J'essaie de comprendre ... Là je lui dis bien d'aller chercher dans la fichier "note pfe ..." dans le dossier projet math et dass la feuille enquête insertion ?
Oui c'est bien ça.


A quel moment je lui dis quelle donnée chercher?
Et bien c'est tout simple...en cliquant sur le bouton Importation.


Et concernant le fait de chercher la note par rapport au nom, c'est ActiveSheet.Range("a1"), True, True ?
Non. Ici la ligne veux dire qu'il va copier la feuille à partir des entêtes (Nom - Prénom -Notes etc.)

A cette question il faut ajouter la Méthode Find avec le paramètre xlWhole, celle-ci permet de rechercher un nom ou une adresse exacte. Et là c'est un peu plus compliqué à faire pour moi.


Voilà, j'éspère avoir repondu à tes questions. Bonne chance pour la suite.


A bientôt 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…