creal69360
XLDnaute Junior
Bonjour,
je voudrais savoir si il est possible de copier des formules dans un classeur fermé:
J'ai au départ une petite base qui contient des données avec des formules, je souhaite ajouter les données de la petite base à la suite dans la base principale . Ces 2 bases ont la même architecture, j'arrive à ajouter des données brutes mais je n'arrive pas à recopier les formules (Les formules sont remplacées par les valeurs brutes) . Est-il possible d'ajouter ces données en tant que formules?
Voici mon code permettant de recopier les valeurs brutes, je mets aussi en pièce jointe l'architecture de ma base:
je voudrais savoir si il est possible de copier des formules dans un classeur fermé:
J'ai au départ une petite base qui contient des données avec des formules, je souhaite ajouter les données de la petite base à la suite dans la base principale . Ces 2 bases ont la même architecture, j'arrive à ajouter des données brutes mais je n'arrive pas à recopier les formules (Les formules sont remplacées par les valeurs brutes) . Est-il possible d'ajouter ces données en tant que formules?
Voici mon code permettant de recopier les valeurs brutes, je mets aussi en pièce jointe l'architecture de ma base:
Code:
Sub export_vers_tdb_oi()
Dim dernlign, dernlignsource As Integer
Dim Cn, cndest As ADODB.Connection
Dim Rst, rst2 As ADODB.Recordset
Dim propriete As Properties
Dim texte_SQL, texte_sql2 As String
Dim i, j As Integer
Application.DisplayAlerts = False
Set Cn = New ADODB.Connection
' On établit la connection avec la base TDB_OI
Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";Extended Properties=Excel 8.0;"
requête SQL
texte_SQL = "Select * from [temp_eotp$]"
Set Rst = New ADODB.Recordset 'Création objet rst( permettant d'interroger la base)
Set Rst = Cn.Execute(texte_SQL, dbOpenForwardOnly, dbReadOnly) 'Exécution requête SQL
Set cndest = New ADODB.Connection
With cndest
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& chemin_base & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
Set rst2 = New ADODB.Recordset 'Création objet rst( permettant d'interroger la base)
texte_sql2 = "Select * from [" & onglet_source & "$] "
rst2.Open texte_sql2, cndest, adOpenKeyset, adLockOptimistic
dernlignsource = Sheets("temp_eotp").Cells(1000000, 1).End(xlUp).Row
j = 1
Do While Not j > dernlignsource
On Error Resume Next
rst2.AddNew
For i = 0 To rst2.Fields.Count
rst2.Fields(i) = Rst.Fields(i).Value
dernlign = dernlign + 1
Next i
j = j + 1
Rst.MoveNext
loop
rst2.Update
Rst.Close 'On détruit l'objet rst
Set Rst = Nothing
rst2.Close 'On détruit l'objet rst
Set rst2 = Nothing
Cn.Close 'On ferme la connection
Set Cn = Nothing
Pièces jointes
Dernière édition: