Ecrire dans un classeur Excel fermé
Bonjour
En pièce jointe, 2 classeurs.
1 classeur maitre, dans lequel j'ajoute des informations.
1 classeur esclave, qui me servira de base de donné.
Dans un premier temps, lorsque je clique sur le bouton en feuille 1 du classeur maitre, les informations renseignées en A1 sont envoyées dans le classeur esclave.
J'y parviens en utilisant une macro ouvrant le classeur esclave
Public Sub CommandButton1_Click()
Dim Wbesclave As Workbook
Application.ScreenUpdating = True
Set Wbesclave = Workbooks.Open("C:\Users\Julien\Desktop\test classeur excel\esclave.xlsx")
Wbesclave.Worksheets("feuil1").Range("a1").Value = Range("a1").Value
Wbesclave.Save
Wbesclave.Close
Application.ScreenUpdating = False
End SubCependant, étant une base de données, le classeur esclave deviendra très volumineux.
Par conséquent, je crains qu'en utilisant une macro le faisant ouvrir pour le renseigner, prenne trop de temps lorsque ce dernier comportera des millier de lignes.
C'est pourquoi je souhaiterai adapter un code permettant de renseigner le classeur esclave sans l'ouvrir.
J'ai bien vu quelques idées pour le faire mais il me faudrait de l'aide pour l'adapter.
Je vous remercie par avance
Salut,
Je n'ai jamais entendu dire que l'on pouvait inscrire des données dans un classeur sans l'ouvrir (d'une manière invisible bien entendu vu l'instruction Application.ScreenUpdating = False).
Mais effectivenent que dans ton code, cette instruction est mal utilisée ; d'abord on utilise l'instruction Application.ScreenUpdating = False (en début de code) et - à bien plaire - l'instruction Application.ScreenUpdating = True en fin de code (et non pas le contraire).
Cordialement.
Merci pour ta remarque sur mon code. Je viens de le modifier.
Selon moi, dans aucun code complet (il y a des bouts de code indiquant des parties de procédures) il ne manque les inscrutions OPEN et CLOSE.
Regare le premier code sur cette feuille reproduit ci-dessous :
Sub TestConnection_V1()
Dim Cn As ADODB.Connection
Dim Fichier As String
'Définit le classeur fermé servant de base de données
Fichier = "C:\monClasseurBase_V01.xls"
Set Cn = New ADODB.Connection
'--- Connexion ---
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;"
.Open
End With
'Extended Properties=Excel 8.0 est utilisé pour les versions d'Excel 97, 2000 et 2002.
'
'... la requête ...
'
'--- Fermeture connexion ---
Cn.Close
Set Cn = Nothing
End SubIl y a bien les deux lignes OPEN et CLOSE dont je te parle.
Selon moi, lorsque l'on parle d'écrire dans un classeur fermé, on sous-entend dans tous les cas qu'il sera ouvert et refermé d'une manière invisible.
Je ne demande qu'à être contredit ; ça me dépannerait bien souvent
Amicalement.