Valeur d'une cellule d'un classeur fermé dans une variable

Bonjour,

J'aimerais que ma fonction retourne la valeur dans une variable au lieu de la placer dans une cellule.

La ligne à remplacer est :

Range(WritingCell).CopyFromRecordset Recordset

Voilà le code complet de ma fonction :

Private Function CopyValuesFromClosedExcelWorkbookXLSX(ExcelDatabaseFilePath As String, Worksheet As String, ReadingCell As String, WritingCell As String)
                        'Application.Run "CopyValuesFromClosedExcelWorkbookXLSX", "C:\DargoLand\Base de Données\Films.xlsx", "Films", "A1:A1", "B12"

            'References: Microsoft AcitveX Data Objects 6.1 Library

    Dim Command As ADODB.Command
    Dim Connection As ADODB.Connection
    Dim Recordset As ADODB.Recordset

    Set Connection = New ADODB.Connection
    Connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & ExcelDatabaseFilePath & ";Extended Properties=""Excel 12.0 Xml;HDR=Yes;ReadOnly=True;"";"

    Set Command = New ADODB.Command
    Command.ActiveConnection = Connection
    Command.CommandText = "SELECT * FROM [" & Worksheet & "$" & ReadingCell & "]"

    Set Recordset = New ADODB.Recordset
    Recordset.Open Command, , adOpenKeyset, adLockOptimistic
    Set Recordset = Connection.Execute("[" & Worksheet & "$" & ReadingCell & "]")

    Range(WritingCell).CopyFromRecordset Recordset

    Recordset.Close
    Connection.Close   
    Set Command = Nothing
    Set Connection = Nothing
    Set Recordset = Nothing
End Function

Bonsoir,

Essayer avec l'instruction suivante :

CopyValuesFromClosedExcelWorkbookXLSX = Recordset.Fields(1).Value

La fonction renverra le premier champs du recordset.

Non testé ...

Bonne soirée

Bouben

J'ai un Erreur d'exécution '3265' Sur cette ligne de code :

CopyValuesFromClosedExcelWorkbookXLSX = Recordset.Fields(1).Value

Bonsoir,

Difficile sans les fichiers sources ...

Aucun test possible ...

A retester en modifiant

Recordset.Fields(0).Value

Bonne soiré

Bouben

J'ai trouvé la solution :

CopyValuesFromClosedExcelWorkbookXLSX = Recordset.GetString
Rechercher des sujets similaires à "valeur classeur ferme variable"