Ecrire depuis un classeur dans un autre via une macro

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 !

titymax

XLDnaute Occasionnel
Bonjour,

Je tourne et retourne dans tous les sens et je n'arrive pas à trouver la solution qui permette d'écrire depuis un classeur A via une macro dans un classeur B (je pécise que ces 2 classuers sont ouverts).

Voici mon code :

Sub export()
'Dim Wbk1 As Workbook, Wbk2 As Workbook

Set Wbk1 = ThisWorkbook
Set Wbk2 = Workbooks("Portefeuille.xls")


Wbk2.Sheets("PORTEFEUILLE").Range("C4") = Now
Wbk2.Sheets.Sheets("PORTEFEUILLE").Range("D4").FormulaLocal = "Aujourdhui()-C4"
Wbk2.Sheets.Sheets("PORTEFEUILLE").Range("O4") = Wbk1.Worksheets(Feuil1).Range("A1")

End Sub

Dans ce code le classeur A est Wbk1 et le classeur B est Wbk2.

Pour info, cette macro doit être exécutée à la fermeture du classeur.

Help me please !!

Bonnes fêtes à tous
 
Re : Ecrire depuis un classeur dans un autre via une macro

Sub export()
'Dim Wbk1 As Workbook, Wbk2 As Workbook

Set Wbk1 = ThisWorkbook
Set Wbk2 = Workbooks("Portefeuille.xls")

Bonjour,

Il y a peut-être un : sheet de trop dans les deux lignes

Wbk2.Sheets("PORTEFEUILLE").Range("C4") = Now
Wbk2.Sheets("PORTEFEUILLE").Range("D4").FormulaLocal = "Aujourdhui()-C4"
Wbk2.Sheets("PORTEFEUILLE").Range("O4") = Wbk1.Worksheets(Feuil1).Range("A1")


End Sub
 
Re : Ecrire depuis un classeur dans un autre via une macro

Bonjour et merci Chalet,

Oui effectivement, mais cela est une erreur de frappe, dans les faits la syntaxe est bonne. Non, là où ça bloque, c'est à :
"Set Wbk2 = Workbooks("Portefeuille.xls")"
C'est ce que je ne comprends pas... il doit y avoir une subtilité qui m'échappe....
 
Re : Ecrire depuis un classeur dans un autre via une macro

Bonjour à tous


La formule ne devrait-elle pas être ?
FormulaLocal = "=Aujourdhui()-C4"

Et PORTEFEUILLE et portefeuille sont pourtant la même chose pour Windows 😉

Ceci marche chez moi donc normalement ton code...
Code:
Sub a()
Dim wA As Workbook, wB As Workbook
Set wA = ThisWorkbook
Set wB = Workbooks("AA.xls")
MsgBox wA.Name
MsgBox wB.Name
End Sub
 
Dernière édition:
Re : Ecrire depuis un classeur dans un autre via une macro

Bonjour et merci Stapple,

Oui, c'est aussi une erreur, mais ce n'est pas celle qui me gêne pour l'heure. Je n'arrive pas à lui faire comprendre que je veux aller écrire dans le fichier "Portefeuille.xls" qui est ouvert...
 
Re : Ecrire depuis un classeur dans un autre via une macro

bonjour à tous

La remarque de Staple1600 me paraît fondée

j'ai testé ton code sur deux fichiers : ça fonctionne (y compris : Set Wbk2 = Workbooks("Portefeuille.xls") avec un autre nom de fichier présent chez moi)

es-tu sûr de l'appellation exact de ton fichier et de son extension?

Wbk2.Sheets.Sheets("PORTEFEUILLE").Range("O4") = Wbk1.Worksheets(Feuil1).Range("A1")
sans doute à mettre entre guillemets

a+
 
Re : Ecrire depuis un classeur dans un autre via une macro

Re

Je viens de revérifier avec les deux classeurs ouverts
Code:
Sub aa()
Dim wA As Workbook, wB As Workbook
Set wA = ThisWorkbook
Set wB = Workbooks("ClassB.xls")
'MsgBox wA.Name
'MsgBox wB.Name
wB.Sheets(1).[A1] = wA.Sheets(1).[A2]
End Sub

J'ai bien la valeur de A2 du classeur A dans A1 du classeur B

Tu as bien une feuille nommée Feuil1?
Dans quel classeur se trouve ta macro?

EDITION:
salut CHALET53, j'avais oublié de te saluer. 🙄
 
Dernière édition:
Re : Ecrire depuis un classeur dans un autre via une macro

C'est à devenir dingue...!

Je viens de faire le test avec un Classeur2.xls bidon et ça bugue tjs sur la ligne "Set Wbk2 = Workbooks("Classeur2.xls")", alors que vous non ?!

Je ne vois pas pourquoi.
 
Re : Ecrire depuis un classeur dans un autre via une macro

Re

Pourquoi tes déclarations sont en commentaires dans ton code initial?
Code vba:
Sub export()
'Dim Wbk1 As Workbook, Wbk2 As Workbook

Dans mon code de test (voir messages précédents)
je déclare mes variables, et mon test est oK
(pas de blocage quand je lance la macro)
 
Re : Ecrire depuis un classeur dans un autre via une macro

Bonjour Staple1600,

C'est une piste : toutefois, je ne les ai pas déclarés et ça fonctionne sur mes deux fichiers

a+

ps je n'avais pas remarqué que nous étions voisins : Laval et de temps en temps Verchaix
 
- 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