Macro copier fichier de base sur un autre fichier selon la devise + le mois

bonjour tout le monde,

J'aurai besoin de savoir comment faire pour copier les taux a partir d'un fichier de base (Data base Exchange Rate.xls) sur un autre fichier en fonction de sa devise et du mois (fichier ou enregistrer les devises.xlsx).

Je suppose qu'il faut utiliser la formule index etc... mais comment faire pour l'integrer sous forme de macro.

Pouvez-vous m'aider svp

Merci à tous !!!!

Bonjour,

à tester

Sub RequeteClasseurFerme()
'activer la référence Microsoft ActiveX Data Objects x.x Library
    Dim Cn As ADODB.Connection
    Dim Fichier As String
    Dim NomFeuille As String, texte_SQL As String
    Dim Rst As ADODB.Recordset

    'Définit le classeur fermé servant de base de données
    Fichier = "C:\Users\isabelle\Documents\test\Data base Exchange Rate .xlsx"  'adapter

    'Nom de la feuille dans le classeur fermé
    NomFeuille = "2018"   'adapter

    Set Cn = New ADODB.Connection

    '--- Connection ---
    With Cn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & Fichier & ";Extended Properties=""Excel 12.0;HDR=NO;"""
        .Open
    End With

    'Définit la requête.
    '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
    texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"

    Set Rst = New ADODB.Recordset
    Set Rst = Cn.Execute(texte_SQL)

    'Ecrit le résultat de la requête dans la cellule A1 de la feuille active
    Range("A1").CopyFromRecordset Rst

    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing
End Sub

Bonjour i20100,

Merci pour ton aide mais ca ne fonctionne pas j'ai in message run time error '-2147467259

Sinon j'ai reussi a faire via l'enregistreur de macro en utilisant la formule ActiveCell.FormulaR1C1 = _

"=INDEX('[Exchange Rate - AEU.xlsx]2018'!R4C2:R18C13,MATCH(RC1,R4C1:R17C1,0),MATCH(R3C,R3C2:R3C13,0))"

Bonne journée et merci encore

re,

as-tu activer la référence Microsoft ActiveX Data Objects x.x Library ?

oui j'ai bien active la ref Microsoft ActiveX Data Objects x.x Library

re,

peux-tu faire un essai en remplacant

.Provider = "Microsoft.ACE.OLEDB.12.0"

par

.Provider = "Microsoft.Jet.OLEDB.4.0"
Rechercher des sujets similaires à "macro copier fichier base devise mois"