Récupérer valeurs d'un autre classeur

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 !

kikorun

XLDnaute Nouveau
Bonsoir à tous 😛

J'ai une petite question qui je pense ne devrait pas poser de problème à la plupart d'entre vous, désolé pour mon piteux niveau !

Je travaille sur la feuille1 de mon classeur Excel (principal.xls);
J'aimerais, sur cette feuille, créer un bouton et y associer une macro qui, lorsqu'elle serait exécutée, irait récupérer des valeurs contenues sur la première feuille d'un autre classeur (secondaire.xls), pour les afficher à un endroit bien précis de mon document courant.

Par exemple, aller récupérer sur secondaire.xls, la valeur des cellules A1, B2, C5 et D7 pour les copier dans ma feuille (principal.xls) dans les cellules A3, B4, C8 et E9.

Merci d'avance pour votre précieuse aide !!

Kikorun 😱
 
Re : Récupérer valeurs d'un autre classeur

Salut

Désolé pour cette erreur, je parlais du même classeur.
Une question dans ton fichier "lire données dans fichier fermé" posté sur ce fil les mots "DATABASE" , "DIVERS", "PARAMETRES" sont les noms des feuilles dans le le classeur "D:\SANDISK (K)\Securitas\TESTS\CTLR\TECH_DATABASE.xls"

Merci pour tous

Foufoudora
code

Private Sub CommandButton1_Click()
ActiveSheet.Range("A1") = Sheets("Feuil2").Range("B3")
ActiveSheet.Range("A2") = Sheets("Feuil2").Range("C5")
ActiveSheet.Range("A3") = Sheets("Feuil2").Range("B10")
ActiveSheet.Range("A4") = Sheets("Feuil2").Range("D8")
End Sub
 
Re : Récupérer valeurs d'un autre classeur

bonjour fofoudora

a tester:

Private Sub CommandButton1_Click()
ActiveSheet.Range("A1").formulalocal ="= Workbooks("Fichier secondaire.xls").Sheets("Feuil1").Range("B3")"
End Sub

ensuite la feuille 1 suivra la feuille 1 du fichier secondaire (toujours s'il est ouvert !!!)
 
Re : Récupérer valeurs d'un autre classeur

Salut pierrejean
je ne sais pas si tu as eu mes excuses précedentes pour t'appeler jean marie
sinon mille excuses

On faite je désire que sans qu'il y aura le bouton "recuperer" au cas d'un changement des valeurs sur la feuille des données sources les données sur la feuille destination changent.

ton code refère à un bouton
Private Sub CommandButton1_Click()
ActiveSheet.Range("A1").formulalocal ="= Workbooks("Fichier secondaire.xls").Sheets("Feuil1").Range("B3")"
End Sub

Merci par avance

Foufoudora
 
Re : Récupérer valeurs d'un autre classeur

Merci pour ton morceau de code, mais ça me paraît bien compliqué à mettre en oeuvre.

Peut-on améliorer de façon simple le code de Pierrejean associé au bouton afin de parvenir à mes fins? (même extraction mais avec fichier fermé) ou celà est-il trop compliqué?

D'avance merci.

Kikorun.



Roger à dit:
Bonjour,
Il est tout à fait possible de lire les infos classeur fermé, essaie ceci, fichier joint...

Je l'utilise pour remplir une base de données techniques, le fichier source étant sur le réseau, base de données fermée ou ouverte.
Attention, si la base de données est ouverte, ce fichier source doit-être en "partage".

@+
Roger.
 
Re : Récupérer valeurs d'un autre classeur

Foufoudora à dit:
Salut

Désolé pour cette erreur, je parlais du même classeur.
Une question dans ton fichier "lire données dans fichier fermé" posté sur ce fil les mots "DATABASE" , "DIVERS", "PARAMETRES" sont les noms des feuilles dans le le classeur "D:\SANDISK (K)\Securitas\TESTS\CTLR\TECH_DATABASE.xls"

Merci pour tous

Foufoudora
code

Private Sub CommandButton1_Click()
ActiveSheet.Range("A1") = Sheets("Feuil2").Range("B3")
ActiveSheet.Range("A2") = Sheets("Feuil2").Range("C5")
ActiveSheet.Range("A3") = Sheets("Feuil2").Range("B10")
ActiveSheet.Range("A4") = Sheets("Feuil2").Range("D8")
End Sub
Hello Fofoudora,
En fait DATABASE, DIVERS et PARAMETRES sont le nom des 3 feuilles du fichier fermé source

@+
Roger.
 
Re : Récupérer valeurs d'un autre classeur

bon ! ça sera chacun son tour (mdr)

@foufoudora

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
Sheets("Feuil1").Range("A1") = Target.Value
End If
If Target.Address = "$C$2" Then
Sheets("Feuil1").Range("A2") = Target.Value
End If

transfere laes cellules B3 ou C2 de la feuille active aux cellules A1 et A2 de la feuille1

@Kikorun
je jette un oeil
 
Re : Récupérer valeurs d'un autre classeur

merci beaucoup pierrejean

j'ai essayé d'adapter au classeur secondaire ouvert en combinant les deux code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
ActiveSheet.Range("A1").formulalocal ="= Workbooks("Fichier secondaire.xls").Sheets("Feuil1").Range("B3")"
End If
If Target.Address = "$C$2" Then
ActiveSheet.Range("A2").formulalocal ="= Workbooks("Fichier secondaire.xls").Sheets("Feuil1").Range("C2")"
End If

mais ca n'a pas marché
peux-tu jeter un coup d'oeuil
Merci par avance

foufoudora
 
Re : Récupérer valeurs d'un autre classeur

Bonjour à tous,

Pour créer des relations avec un classeur fermé, il y a un boulot considérable qui été effectué sur ce site dans le WIKI: voir page 6 du wiki de MichelXLD -bonjour Michel-

Dans ce cas ( 4 cellules) il est disproportionné d'utiliser ADO, d'autant plus que dans ce post, la solution proposée (site de Frédéric Sigonneau)demande une analyse sérieuse avant d'être adaptée au pb posé

a essayer cette ligne toute simple dite macro de John Walkenbach
Range("cible")= ExecuteExcel4Macro('C:\mes documents\tondossier\[Classeur secondaire.xls]Feuil1'!L1C1)

Voir si il faut mettre le paramêtre entre guillemets

Par contre, le classeur fermé est considéré comme une base de données séquentielle indexée, la mise à jour du classeur principal ne sera pas automatique

Bon courage quand même

Bon appétit, bon WE
 
Re : Récupérer valeurs d'un autre classeur

Salut Michel
merci d'abord
la référence Feuil!L1C1 correspond à quoi
Merci

Foufoudora
PS: Désolé Kilkorun mais ca nous évite de créer un autre fil
Si ca te dérange je sort du fil !!! lol

Range("cible")= ExecuteExcel4Macro('C:\mes documents\tondossier\[Classeur secondaire.xls]Feuil1'!L1C1)
 
Dernière édition:
Re : Récupérer valeurs d'un autre classeur

re foufoudora

je pense que tu as la solution grace a Michel

pour ma part je m'excuse ,je n'avais pas testé

en fait

si tu veux reporter une valeur d'un fichier a l'autre (ouverts tous deux) c'est:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Workbooks("Classeur3").Sheets("feuil1").Range("A1").Formula = "=[Classeur4]Feuil1!$B$3"
End Sub
 
Re : Récupérer valeurs d'un autre classeur

kikorun à dit:
Salut et merci bcp pour vos réponses!

Comm disait KOBAYA, le plus simple en effet serait d'utiliser l'assistant, surtout si la manipulation est tjs la même et consiste à aller chercher les valeurs contenues systématiquement dans les mêmes cellules pour les positionner à un endroit bien précis sur la feuille récup.

Mais ça m'intéresserait quand même de positionner un bouton avec la macro qui va bien.

IFFIC, j'ai lancé le fichier, mais quand je clique sur "Rechercher le fichier" j'ai un message d'erreur: "Type défini par l'utilisateur non défini", faisant référence à "BOITE As FileDialog".

N'y a-t-il pas plus simple?

Je suis sur ma feuille principal.xls, je clique sur le bouton macro et 4 valeurs positionnées à un endroit bien précis sur une autre feuille (de nom toujours identique) sont récupérées et insérées dans 4 cellules (toujours identiques) de ma feuille principal.xls ...

Merci pour votre aide !

C'est que vraisemblablement tu es en "Office d'avant 2003"
J'ai dans mes archives une adaptation du "FileDialog" que je
pourrais adapter.

Dans le cas où, tu n'aies pas obtenu totale satisfaction
dans les réponses à ta recherche.

Je triture le Truc, et je te le communique.

Bonne soirée

IFFIC
 
- 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

Retour