K
Kevin
Guest
Bonjour à tous,
A l' aide de la macro suivante (trouvée dans les archives du site) j' écris dans le classeur BASE2 Feuil1 la ligne A20:X20 de la Feuil3 du classeur actif sans ouvrir BASE2.
Mais j' ai le problème suivant que je n' arrive pas à résoudre.
La ligne s' inscrit bien en Feuil1 de BASE2 mais aussi en A20:X20. Or je voudrais que cette ligne s' inscrive en A2:X2 de cette Feuil1 et que lorsque je modifie la ligne du classeur actif, cette ligne aille se placer en Feuil1 de BASE2 mais sous la précédente.
Voilà la macro coupable:
Sub EcritDatas()
Dim Fich$, cell As Range
Fich = 'S:\\TEST\\BASE2.xls'
For Each cell In ActiveWorkbook.Sheets('Feuil3').Range('A20:X20')
SetExternalDatas Fich, 'Feuil1', cell.Address(0, 0), cell.Text
Next
End Sub
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
Set oConn = New ADODB.Connection
oConn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & DestFile & ';' & _
'Extended Properties=''Excel 8.0;HDR=No;'';'
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn
RangeDest = DestCellAdr & ':' & DestCellAdr
oCmd.CommandText = 'SELECT * from `' & DestFeuille & '$' & RangeDest & '`'
Set oRS = New ADODB.Recordset
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic
oRS(0).Value = DataToWrite
oRS.Update
oConn.Close
Set oConn = Nothing
Set oCmd = Nothing
Set oRS = Nothing
End Sub
Si vous avez une idée, merci.
A plus. Kevin.
A l' aide de la macro suivante (trouvée dans les archives du site) j' écris dans le classeur BASE2 Feuil1 la ligne A20:X20 de la Feuil3 du classeur actif sans ouvrir BASE2.
Mais j' ai le problème suivant que je n' arrive pas à résoudre.
La ligne s' inscrit bien en Feuil1 de BASE2 mais aussi en A20:X20. Or je voudrais que cette ligne s' inscrive en A2:X2 de cette Feuil1 et que lorsque je modifie la ligne du classeur actif, cette ligne aille se placer en Feuil1 de BASE2 mais sous la précédente.
Voilà la macro coupable:
Sub EcritDatas()
Dim Fich$, cell As Range
Fich = 'S:\\TEST\\BASE2.xls'
For Each cell In ActiveWorkbook.Sheets('Feuil3').Range('A20:X20')
SetExternalDatas Fich, 'Feuil1', cell.Address(0, 0), cell.Text
Next
End Sub
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
Set oConn = New ADODB.Connection
oConn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & DestFile & ';' & _
'Extended Properties=''Excel 8.0;HDR=No;'';'
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn
RangeDest = DestCellAdr & ':' & DestCellAdr
oCmd.CommandText = 'SELECT * from `' & DestFeuille & '$' & RangeDest & '`'
Set oRS = New ADODB.Recordset
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic
oRS(0).Value = DataToWrite
oRS.Update
oConn.Close
Set oConn = Nothing
Set oCmd = Nothing
Set oRS = Nothing
End Sub
Si vous avez une idée, merci.
A plus. Kevin.