ADO , écrire dans un Classeur fermé

A

Alyre

Guest
Bonsoir a Toutes et a tous

Je voudrais écrire dans un classeur fermé avec cette SUB, elle ne marche pas , je m'explique a la ligne

SetExternalDatas Fich, "Feuil2", cell.Address(A1, A2), cell.Text

elle me répond que Sub ou Function non Défini, J'ai bien cochée dans la bibliothèque, 'Microsoft ActiveX Data Objects 2.x Library

Comment je doit définir ma Function

'Pour lire et écrire dans un classeur fermé en utilisant ADO,
'la bibliothèque
'Microsoft ActiveX Data Objects 2.x Library
'doit être cochée dans Outils\Références du VBAProject



Sub EcritDatas()
Dim Fich$, cell As Range

Fich = "C:\Documents and Settings\Mes documents\Classeur1.xls" 'à adapter

'écrit dans le classeur fermé la valeur des cellules A1:A5
'du classeur actif
For Each cell In ActiveWorkbook.Sheets("Feuil2").Range("A1:A5")
SetExternalDatas Fich, "Feuil2", cell.Address( 0, 0), cell.Text
Next

'écrit en A6 la date et l'heure de l'opération
SetExternalDatas Fich, "Feuil1", "A6", "mise à jour du " & Now

'on regarde le résultat
DoEvents
Workbooks.Open Fich

End Sub


Merci a l'avance

@ ++ alyre
 
J

Jon

Guest
regarde ce lien
<http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&threadm=3E1B672A.EC155A97%40wanadoo.fr&rnum=1&prev=/groups%3Fq%3Dgroup%253A*excel*%2BSetExternalDatas%2B%26ie%3DUTF-8%26oe%3DUTF-8%26hl%3Dfr>

c'est un sujet déjà abordé ici, j'avais orienté vers le site de Frédéric Sigonneau <http://perso.wanadoo.fr/frederic.sigonneau> qui intervient dans le message lié ci-dessus
 
A

Alyre

Guest
Bonjour le forum

Salut Jon

Merci bien pour le lien, mais c'est sur ce lien que j'avais copier la sub

alors mon problème n'est pas encore réglé,

qui pourais me dire, ce que fait de pas corecte

si qu'elle qu'un pourais me donner une exemple, ça serais tres aprécier

merci 1000 fois pour c'eux qui veuille bien prendre de leur temps pour aider un petit gas qui ne peut pas ce sortire du trous avec cette sub

@ ++ alyre
 
S

STéphane

Guest
bonjour

et le lien google que j'ai cité ?
en tout cas, je viens de le reprendre et ça marche :


'Pour lire et écrire dans un classeur fermé en utilisant ADO,
'la bibliothèque 'Microsoft ActiveX Data Objects 2.x Library
'doit être cochée dans Outils\Références du VBAProject



Sub EcritDatas()
Dim Fich$, cell As Range

Fich = "C:\Documents and Settings\STephane\Bureau\mmm.xls" 'à adapter

'écrit dans le classeur fermé la valeur des cellules A1:A5
'du classeur actif
For Each cell In ActiveWorkbook.Sheets("Feuil2").Range("A1:A5")
SetExternalDatas Fich, "Feuil2", cell.Address(0, 0), cell.Text
Next

'écrit en A6 la date et l'heure de l'opération
SetExternalDatas Fich, "Feuil1", "A6", "mise à jour du " & Now

'on regarde le résultat
DoEvents
Workbooks.Open Fich

End Sub

'écrit DataToWrite dans la cellule DestCellAdr
'de la feuille DestFeuille du classeur fermé DestFile
Sub SetExternalDatas(DestFile As String, _
DestFeuille As String, _
DestCellAdr As String, _
DataToWrite As Variant)
Dim oConn As ADODB.Connection
Dim oCmd As ADODB.Command
Dim oRS As ADODB.Recordset
Dim RangeDest
'd'après Rob Bovey, mpep

' Open a connection to the Excel spreadsheet
Set oConn = New ADODB.Connection
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & DestFile & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"";"

' Create a command object and set its ActiveConnection
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn

' This SQL statement selects a cell range in the "feuilleTest" worksheet.
'1 Sélection pour écrire dans une seule cellule
RangeDest = DestCellAdr & ":" & DestCellAdr
oCmd.CommandText = "SELECT * from `" & DestFeuille & "$" & RangeDest & "`"

' Open a recordset containing the worksheet data.
Set oRS = New ADODB.Recordset
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic

' Update last row
oRS(0).Value = DataToWrite
oRS.Update

'Close the connection
oConn.Close
Set oConn = Nothing
Set oCmd = Nothing
Set oRS = Nothing

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 651
Messages
2 111 561
Membres
111 201
dernier inscrit
netcam