Marc_du_78
XLDnaute Accro
Bonjour le Forum,
Voila, je cherche à tranférer la plage A1:M10 d'un classeur nommé 'Modele' Feuil1,
dans un autre classeur (fermé) nommé 'Archives' Feuil1
Ces classeurs se trouvent dans : E\\AffectEngins
Le code ci-dessous provient de la page Wiki de ce Forum et je bloque dès le départ sur la ligne 2 (Type défini par l'utilisateur non défini)
'TransférerDansClasseursFermés
' 'Modele.xls' est le classeur source.
'Toutes les données de la Feuil1 sont récuperees dans la requete.
' 'Archives.xls ' est le classeur destination.
'les données recuperees sont ajoutées a la suite des enregistrements existants
'Le classeur contenant la macro et les 2 classeurs fermés sont dans le meme repertoire
Sub TranfertEntreClasseursFermes()
Dim Cn As New ADODB.Connection 'Type défini par l'utilisateur non défini
Dim oProdRS As New ADODB.Recordset, oRS As ADODB.Recordset
Dim oConn As ADODB.Connection
Dim j As Integer
'------------------------------------------------------------------
' 'Modele.xls' est le classeur source
Cn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & ThisWorkbook.Path & '\\Modele.xls;' & _
'Extended Properties=''Excel 8.0;HDR=NO;'''
'les donnees sources sont dans la Feuil1 du classeur 'Modele.xls'
oProdRS.Open 'SELECT * FROM ?[Feuil1$]', Cn, adOpenStatic
'------------------------------------------------------------------
' 'Archives.xls' est le classeur destination
Set oConn = New ADODB.Connection
oConn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & ThisWorkbook.Path & '\\Archives.xls;' & _
'Extended Properties=''Excel 8.0;HDR=NO;'''
'les donnees sont à placer dans la Feuil1 du classeur 'Archives.xls'
Set oRS = New ADODB.Recordset
oRS.Open 'Select * from ?[Feuil1$]', oConn, adOpenKeyset, adLockOptimistic
'------------------------------------------------------------------
' Transfert des données
Do While Not (oProdRS.EOF)
oRS.addNew
For j = 0 To oRS.Fields.Count - 1
oRS.Fields(j) = oProdRS.Fields(j).Value
Next j
oRS.Update
oProdRS.moveNext
Loop
oProdRS.Close
Cn.Close
oRS.Close
oConn.Close
End Sub
Je vous remercie pour votre aide.
Voila, je cherche à tranférer la plage A1:M10 d'un classeur nommé 'Modele' Feuil1,
dans un autre classeur (fermé) nommé 'Archives' Feuil1
Ces classeurs se trouvent dans : E\\AffectEngins
Le code ci-dessous provient de la page Wiki de ce Forum et je bloque dès le départ sur la ligne 2 (Type défini par l'utilisateur non défini)
'TransférerDansClasseursFermés
' 'Modele.xls' est le classeur source.
'Toutes les données de la Feuil1 sont récuperees dans la requete.
' 'Archives.xls ' est le classeur destination.
'les données recuperees sont ajoutées a la suite des enregistrements existants
'Le classeur contenant la macro et les 2 classeurs fermés sont dans le meme repertoire
Sub TranfertEntreClasseursFermes()
Dim Cn As New ADODB.Connection 'Type défini par l'utilisateur non défini
Dim oProdRS As New ADODB.Recordset, oRS As ADODB.Recordset
Dim oConn As ADODB.Connection
Dim j As Integer
'------------------------------------------------------------------
' 'Modele.xls' est le classeur source
Cn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & ThisWorkbook.Path & '\\Modele.xls;' & _
'Extended Properties=''Excel 8.0;HDR=NO;'''
'les donnees sources sont dans la Feuil1 du classeur 'Modele.xls'
oProdRS.Open 'SELECT * FROM ?[Feuil1$]', Cn, adOpenStatic
'------------------------------------------------------------------
' 'Archives.xls' est le classeur destination
Set oConn = New ADODB.Connection
oConn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & ThisWorkbook.Path & '\\Archives.xls;' & _
'Extended Properties=''Excel 8.0;HDR=NO;'''
'les donnees sont à placer dans la Feuil1 du classeur 'Archives.xls'
Set oRS = New ADODB.Recordset
oRS.Open 'Select * from ?[Feuil1$]', oConn, adOpenKeyset, adLockOptimistic
'------------------------------------------------------------------
' Transfert des données
Do While Not (oProdRS.EOF)
oRS.addNew
For j = 0 To oRS.Fields.Count - 1
oRS.Fields(j) = oProdRS.Fields(j).Value
Next j
oRS.Update
oProdRS.moveNext
Loop
oProdRS.Close
Cn.Close
oRS.Close
oConn.Close
End Sub
Je vous remercie pour votre aide.