Utilisation d'un fichier excel fermé dans un fichier excel ouver [Résolu/Fermé]

Signaler
-
 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 !

5 réponses

Messages postés
15221
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 mai 2020
1 292
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 ???
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...
Messages postés
15221
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 mai 2020
1 292 > Hugues
Re,

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

Connaissez vous la programmation VBA excel ?
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
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
Messages postés
15221
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 mai 2020
1 292
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)
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 ...
Messages postés
15221
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 mai 2020
1 292
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...
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
Messages postés
15221
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 mai 2020
1 292 > Hugues
Re,

Pas interesse par acces fichier ferme ???? Pourtant c'etait votre demande
Le fichier fermé est celui dans lequel je récupère mes données nommé donc "Classeur"; l'autre fichier restera ouvert car c'est sur celui ci que l'utilisateur travaillera
Messages postés
15221
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 mai 2020
1 292 > Hugues
Re,

Z'etes sur de ce que vous ecrivez, un classeur ferme ne fait rien. Relisez ce que vous avez ecrit au debut de votre demande
Cela me semble clair ... Je souhaitais juste importer des données d'un fichier fermé vers un fichier ouvert
En tout cas problème résolu merci beaucoup !