Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

enregistrement par VBA dans un autre fichier xls

4 réponses
Avatar
Rémi
bonjour,
décidemment aujourd'hui c'est la journée des questions..

je recherche une méthode pratique en VBA (car je dois l'intégrer dans du
code déjà existant) pour enregistrer la valeur d'une cellule d'un fichier A
xls vers une cellule d'un fichier B xls.
merci d'avance de votre aide

4 réponses

Avatar
FdeCourt
Salut,

En supposant que c'est déjà ouvert, dans le code existant, tu n'as
qu'une ligne à ajouter

If Transvaser("fichierA.xls", "fichierB.xls", "Feuil1", "Feuil1",
"A1:D5", "B1:E5") = False Then MsgBox "Erreur"


puis tu ajoutes ce code dans un module :

Function Transvaser(a As String, b As String, shA As String, shB As
String, rngA As String, rngB As String)
' a correspond au fichier source
' b correspond au fichier de destination
' shA correspond à la feuille source
' shB correspond à la feuille de destination
' rngA correspond à la plage source
' rngB correspond à la plage de destination

On Error GoTo err_handler
Dim fichierA As Workbook
Dim fichierB As Workbook
Set fichierA = Workbooks(a)
Set fichierB = Workbooks(b)
fichierB.Sheets(shB).Range(rngB).Value = fichierA.Sheets(shA).Range
(rngA).Value
fichierB.Save
Transvaser = True
On Error GoTo 0
Exit Function
err_handler:
Transvaser = False
End Function

Cordialement,

F.
Avatar
Daniel.C
Bonjour.
Les deux classeurs sont-ils ouverts ?
Daniel

bonjour,
décidemment aujourd'hui c'est la journée des questions..

je recherche une méthode pratique en VBA (car je dois l'intégrer dans du code
déjà existant) pour enregistrer la valeur d'une cellule d'un fichier A xls
vers une cellule d'un fichier B xls.
merci d'avance de votre aide


Avatar
Rémi
bonjour Daniel,
seul le fichier A (source) est ouvert, le fichier B (destination) est fermé

"Daniel.C" a écrit dans le message de
news:
Bonjour.
Les deux classeurs sont-ils ouverts ?
Daniel

bonjour,
décidemment aujourd'hui c'est la journée des questions..

je recherche une méthode pratique en VBA (car je dois l'intégrer dans du
code déjà existant) pour enregistrer la valeur d'une cellule d'un fichier
A xls vers une cellule d'un fichier B xls.
merci d'avance de votre aide






Avatar
Daniel.C
Dans Outils / Références de l'écran VBE, coche :
Microsoft ActiveX Data Objects x.x Library
Je remercie celui à qui j'ai piqué ce code, dans doute Michdenis ?
Utilise ensuite la macro :

Sub EcrireDansFichierFermé()
Dim Cn As ADODB.Connection
Dim Cd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim Fichier As String

'Fichier destination fermé (à adapter)
Fichier = "e:donneesdanielexceladoclasseurferme.xls"

Set Cn = New ADODB.Connection
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"";"

Set Cd = New ADODB.Command
Cd.ActiveConnection = Cn
'dans la ligne suivante, "Feuil2$A10:A10" représente la feuille
' et la cellule du fichier destinataire
Cd.CommandText = "SELECT * FROM [Feuil2$A10:A10]"

Set Rst = New ADODB.Recordset
Rst.Open Cd, , adOpenKeyset, adLockOptimistic
Rst(0).Value = [A1] ' cellule du fichier source

Rst.Update

Cn.Close
Set Cn = Nothing
Set Cd = Nothing
Set Rst = Nothing
End Sub

bonjour Daniel,
seul le fichier A (source) est ouvert, le fichier B (destination) est fermé

"Daniel.C" a écrit dans le message de
news:
Bonjour.
Les deux classeurs sont-ils ouverts ?
Daniel

bonjour,
décidemment aujourd'hui c'est la journée des questions..

je recherche une méthode pratique en VBA (car je dois l'intégrer dans du
code déjà existant) pour enregistrer la valeur d'une cellule d'un fichier
A xls vers une cellule d'un fichier B xls.
merci d'avance de votre aide