Utilisation d'un fichier excel fermé dans un fichier excel ouver

Résolu
Hugues -  
 Hugues -
Bonjour,





Je souhaiterais transférer une plage de donnée d'un fichier excel fermé vers un fichier excel ouvert.
Le problème c'est aussi que le nom du fichier excel appelé dépends d'un choix dans le premier fichier,

Est-ce possible ?

Merci à tous !
A voir également:

5 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Le problème c'est aussi que le nom du fichier excel appelé dépends d'un choix dans le premier fichier,

Le premier fichier est celui qui est ouvert ???
0
Hugues
 
En effet,

L'utilisateur entre un nom dans le fichier ouvert, le but est de récupérer les données d'un fichier fermé du même nom que l'entrée dans le fichier ouvert...
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Hugues
 
Re,

un site a visiter:
https://silkyroad.developpez.com/VBA/ClasseursFermes/

Connaissez vous la programmation VBA excel ?
0
Hugues
 
Oui j'ai déjà eu 20 h d'enseignement dessus, cependant nous n'avons jamais parlé de communications entre les fichiers, je vais voir votre tutoriel
0
Hugues
 
Ce que je souhaite faire semble correspondre à cette macro car elle est utilisée sur un autre fichier que je n'ai pas crée mais que j'utilise.

En revanche je n'arrive pas à utiliser cette macro sur mon tableur... Quelles sont les modifications à apporter (chemin du fichier...) et où doit-je les faire ?

Sub recupdonnees()



1-Application.ScreenUpdating = False
2-Application.DisplayAlerts = False

3-'Récupération de données

4-Nom_fichier = ActiveWorkbook.Name
5- Windows(Nom_fichier).Activate
6- chemin = ActiveWorkbook.Path
7- 'Sheets("Carac. capteur").Visible = True
8- 'Sheets("résultats h-h").Visible = True

9- Sheets("Carac. capteur").Select

10- ZoneClimatique = Range("E7").Value

11- 'Récupérer les données climatiques
12-Workbooks.Open (chemin & "\Météo 2012\" & ZoneClimatique)
13-recup = ActiveWorkbook.Name

14-Range("K3:K8762,O3:O8762,P3:P8762,M3:M8762,N3:N8762,R3:R8762,S3:S8762").Select
15- Selection.Copy
16- Workbooks(Nom_fichier).Activate

17- Sheets("résultats h-h").Select
18- Range("K3").Select
19- Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

20- Workbooks(recup).Close savechanges:=False
21-Workbooks(Nom_fichier).Activate

22- Sheets("Carac. capteur").Select
23- Application.ScreenUpdating = False







'Fin récupération donnée
End Sub
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

ici:
6- chemin = ActiveWorkbook.Path
en mettre le chemin reel sur disque: "C:\monrepertoire\"

ou
en remplacent chemin par le chemin reel sur disque
12-Workbooks.Open (chemin & "\Météo 2012\" & ZoneClimatique)
0
Hugues
 
Après le chemin remplacé et la plage de donnée copiée, où doit-je écrire pour la copier sur mon fichier ouvert ?

Je crois que mes connaissances en vba sont très juste pour mon problème ...
0

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

Posez votre question
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

pouvez-vous mettres vos fichiers (celui qui doit etre ouvert et celui qui doit etre ferme) a dispo (passez par les MP si vous le voulez)

il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
0
Hugues
 
Merci bcp pour tes réponses,

Les fichiers sont interne à l'entreprise j'ai donc fais des fichiers factices qui correspondent au problème;
Le fichier de base (1) :
http://cjoint.com/?EDoqVLEULzL

L'utilisateur choisit sa zone climatique ici H1a ou H2b

Ensuite je souhaiterais récupérer les données de ces fichiers (2) (données de taille identiques A1:T8764) :

http://cjoint.com/?EDormOmOfjI

http://cjoint.com/?EDorngI76LO

En fonction de l'entrée de l'utilisateur dans le fichier de base (1) , on récupère les donnée du fichiers (2) qui comporte le nom entré par l'utilisateur.
On copie ensuite les données dans la feuille nommée "Calcul" sur les cellules A5:T8769.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Hugues
 
Bonjour,
Je recupere vos fichier et vous tiens au courant

A+
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

un exemple en ouvrant le fichier selectionne: https://www.cjoint.com/c/EDqjiI3tRem

pourquoi voulez-vous que ce soit fichier ferme ?????
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

un exemple fichier ferme: https://www.cjoint.com/c/EDqkw7OBk2K

pensez a changez le chemin sur le disque pour le fichier
0
Hugues
 
Cela fonctionne !
Merci beaucoup pour ton aide et ton temps passé !
Voici donc le code qui a fonctionné pour moi :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("B2")) Is Nothing And Target.Count = 1 And Target <> Empty Then
        Application.ScreenUpdating = False
        Classeur = Target
        Workbooks.Open ("Chemin d'accès\" & Classeur & ".xls")
        TInfos = Worksheets(Classeur).Range("A1:T8764")
        ThisWorkbook.Worksheets("Calculs").Range("A5:T8769") = TInfos
        Workbooks(Classeur & ".xls").Close
        Worksheets("Calculs").Activate
    End If
    Application.ScreenUpdating = True
End Sub
0