Est-il possible =E0 l'aide d'un bouton dans le classeur1=20
d'aller enregistrer des donn=E9es dans le classeur2 sans que=20
le classeur2 soit ouvert et sans l'ouvrir.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Philippe.R
Bonjour Eric, Oui, c'est possible, Frédéric Sigonneau nous indique ceci sur Excelabo :
"=========================================================================" Je désire écrire des données dans un fichier sans l'ouvrir. Cette saisie automatisée doit être manipulée à partir d'un autre classeur.IL est possible de lire et d'écrire dans un classeur sans l'ouvrir, en utilisant ADO (ActiveX Data Objects), c'est-à-dire en le considérant comme une base de données. Quelques adresses pour plus de renseignements :
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q257819 http://www.able-consulting.com/tech.php http://www.erlandsendata.no/english/vba/adodao/index.phpEt ci-dessous deux procédures récupérée sur le forum anglophone, qui donnent un exemple des moyens d'accès à un classeur par l'intermédiaire d'une connexion ADO. Attention, débutants s'abstenir :-) '============================ 'Troy W, mpep Sub subFilesToProcess_Get() '''Get the list of files to process from a dialog box presented to the user. Dim vFilenames As Variant Dim sFilepath As String Dim vFile As Variant vFilenames Application.GetOpenFilename( _ FileFilter:="Excel Files (*.xls), *.xls", _ Title:="Select Multiple Files To Process", _ MultiSelect:=True) If TypeName(vFilenames) <> "Boolean" Then For Each vFile In vFilenames subExcel_ADOconnect_ODBC sFilename:=CStr(vFile) Next vFile End If End Sub Sub subExcel_ADOconnect_ODBC(sFilename As String) '''Must have a reference to: Microsoft ActiveX Data Objects 2.x Library '''Tools | References from the menubar. Dim oConn As ADODB.Connection Dim oRs As ADODB.Recordset '''Create and open a new ADO Connection using ODBC. Set oConn = New ADODB.Connection oConn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _ "FIL=excel 8.0;" & _ "DefaultDir=D:My DocumentsExcel2000Ado;" & _ "MaxBufferSize 48;" & _ "PageTimeout=5;" & _ "DBQ=" & sFilename & ";" '''Create the Recordset. Set oRs = New ADODB.Recordset '''Open the Recordset using a Named Ranged. '''oRs.Open "Select * from myRange1", oConn, adOpenStatic, adLockBatchOptimistic, adCmdText '''Open the Recordset using an unnamed range. '''oRs.Open "SELECT * FROM [Sheet1$A1:E10]", _ oConn, adOpenStatic, adLockBatchOptimistic, adCmdText '''Open the Recordset using just the SheetName (without specifying a range). oRs.Open "[Sheet1$]", oConn, adOpenStatic, adLockBatchOptimistic,adCmdTable '''Put your code here to send the data recordset to a database. '''... '''As a demo, show the user a snippet of the data. MsgBox "RecordCount: " & oRs.RecordCount & vbCrLf & _ oRs.Fields(0).Name & ", " & oRs.Fields(1).Name & vbCrLf & _ oRs.Fields(0).Value & ", " & oRs.Fields(1).Value '''Kill the objects. Set oRs = Nothing Set oConn = Nothing End Sub Frédéric Sigonneau"==========================================================================" à cette adresse :
Retirer A_S_ pour répondre. XL97 / XL2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"EG" a écrit dans le message de news:085e01c3b5b8$4e1b7ca0$ Bonjour,
Est-il possible à l'aide d'un bouton dans le classeur1 d'aller enregistrer des données dans le classeur2 sans que le classeur2 soit ouvert et sans l'ouvrir.
Bonjour Eric,
Oui, c'est possible, Frédéric Sigonneau nous indique ceci sur Excelabo :
"========================================================================="
Je désire écrire des données dans un fichier sans l'ouvrir. Cette saisie automatisée doit être
manipulée à partir d'un autre classeur.IL est possible de lire et d'écrire dans un classeur sans
l'ouvrir, en utilisant ADO
(ActiveX Data Objects), c'est-à-dire en le considérant comme une base de données.
Quelques adresses pour plus de renseignements :
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q257819
http://www.able-consulting.com/tech.php
http://www.erlandsendata.no/english/vba/adodao/index.phpEt ci-dessous deux procédures récupérée sur le
forum anglophone, qui donnent un exemple des moyens d'accès à un classeur par l'intermédiaire d'une
connexion ADO. Attention, débutants s'abstenir :-) '============================ 'Troy W, mpep Sub
subFilesToProcess_Get() '''Get the list of files to process from a dialog box presented to the user. Dim
vFilenames As Variant Dim sFilepath As String Dim vFile As Variant vFilenames Application.GetOpenFilename( _ FileFilter:="Excel Files (*.xls), *.xls", _ Title:="Select Multiple Files
To Process", _ MultiSelect:=True) If TypeName(vFilenames) <> "Boolean" Then For Each vFile In vFilenames
subExcel_ADOconnect_ODBC sFilename:=CStr(vFile) Next vFile End If End Sub Sub
subExcel_ADOconnect_ODBC(sFilename As String) '''Must have a reference to: Microsoft ActiveX Data
Objects 2.x Library '''Tools | References from the menubar. Dim oConn As ADODB.Connection Dim oRs As
ADODB.Recordset '''Create and open a new ADO Connection using ODBC. Set oConn = New ADODB.Connection
oConn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _ "FIL=excel 8.0;" & _ "DefaultDir=D:My
DocumentsExcel2000Ado;" & _ "MaxBufferSize 48;" & _ "PageTimeout=5;" & _ "DBQ=" & sFilename & ";"
'''Create the Recordset. Set oRs = New ADODB.Recordset '''Open the Recordset using a Named Ranged.
'''oRs.Open "Select * from myRange1", oConn, adOpenStatic, adLockBatchOptimistic, adCmdText '''Open the
Recordset using an unnamed range. '''oRs.Open "SELECT * FROM [Sheet1$A1:E10]", _ oConn, adOpenStatic,
adLockBatchOptimistic, adCmdText '''Open the Recordset using just the SheetName (without specifying a
range). oRs.Open "[Sheet1$]", oConn, adOpenStatic, adLockBatchOptimistic,adCmdTable '''Put your code
here to send the data recordset to a database. '''... '''As a demo, show the user a snippet of the data.
MsgBox "RecordCount: " & oRs.RecordCount & vbCrLf & _ oRs.Fields(0).Name & ", " & oRs.Fields(1).Name &
vbCrLf & _ oRs.Fields(0).Value & ", " & oRs.Fields(1).Value '''Kill the objects. Set oRs = Nothing Set
oConn = Nothing End Sub
Frédéric Sigonneau"=========================================================================="
à cette adresse :
http://www.excelabo.net/xl/fichiers.php#ecriresansouvrir
--
Amicales Salutations
A_S_rauphil@wanadoo.fr
Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"EG" <eric.gignac@bnc.ca> a écrit dans le message de news:085e01c3b5b8$4e1b7ca0$a401280a@phx.gbl...
Bonjour,
Est-il possible à l'aide d'un bouton dans le classeur1
d'aller enregistrer des données dans le classeur2 sans que
le classeur2 soit ouvert et sans l'ouvrir.
Bonjour Eric, Oui, c'est possible, Frédéric Sigonneau nous indique ceci sur Excelabo :
"=========================================================================" Je désire écrire des données dans un fichier sans l'ouvrir. Cette saisie automatisée doit être manipulée à partir d'un autre classeur.IL est possible de lire et d'écrire dans un classeur sans l'ouvrir, en utilisant ADO (ActiveX Data Objects), c'est-à-dire en le considérant comme une base de données. Quelques adresses pour plus de renseignements :
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q257819 http://www.able-consulting.com/tech.php http://www.erlandsendata.no/english/vba/adodao/index.phpEt ci-dessous deux procédures récupérée sur le forum anglophone, qui donnent un exemple des moyens d'accès à un classeur par l'intermédiaire d'une connexion ADO. Attention, débutants s'abstenir :-) '============================ 'Troy W, mpep Sub subFilesToProcess_Get() '''Get the list of files to process from a dialog box presented to the user. Dim vFilenames As Variant Dim sFilepath As String Dim vFile As Variant vFilenames Application.GetOpenFilename( _ FileFilter:="Excel Files (*.xls), *.xls", _ Title:="Select Multiple Files To Process", _ MultiSelect:=True) If TypeName(vFilenames) <> "Boolean" Then For Each vFile In vFilenames subExcel_ADOconnect_ODBC sFilename:=CStr(vFile) Next vFile End If End Sub Sub subExcel_ADOconnect_ODBC(sFilename As String) '''Must have a reference to: Microsoft ActiveX Data Objects 2.x Library '''Tools | References from the menubar. Dim oConn As ADODB.Connection Dim oRs As ADODB.Recordset '''Create and open a new ADO Connection using ODBC. Set oConn = New ADODB.Connection oConn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _ "FIL=excel 8.0;" & _ "DefaultDir=D:My DocumentsExcel2000Ado;" & _ "MaxBufferSize 48;" & _ "PageTimeout=5;" & _ "DBQ=" & sFilename & ";" '''Create the Recordset. Set oRs = New ADODB.Recordset '''Open the Recordset using a Named Ranged. '''oRs.Open "Select * from myRange1", oConn, adOpenStatic, adLockBatchOptimistic, adCmdText '''Open the Recordset using an unnamed range. '''oRs.Open "SELECT * FROM [Sheet1$A1:E10]", _ oConn, adOpenStatic, adLockBatchOptimistic, adCmdText '''Open the Recordset using just the SheetName (without specifying a range). oRs.Open "[Sheet1$]", oConn, adOpenStatic, adLockBatchOptimistic,adCmdTable '''Put your code here to send the data recordset to a database. '''... '''As a demo, show the user a snippet of the data. MsgBox "RecordCount: " & oRs.RecordCount & vbCrLf & _ oRs.Fields(0).Name & ", " & oRs.Fields(1).Name & vbCrLf & _ oRs.Fields(0).Value & ", " & oRs.Fields(1).Value '''Kill the objects. Set oRs = Nothing Set oConn = Nothing End Sub Frédéric Sigonneau"==========================================================================" à cette adresse :
Retirer A_S_ pour répondre. XL97 / XL2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"EG" a écrit dans le message de news:085e01c3b5b8$4e1b7ca0$ Bonjour,
Est-il possible à l'aide d'un bouton dans le classeur1 d'aller enregistrer des données dans le classeur2 sans que le classeur2 soit ouvert et sans l'ouvrir.