• Initiateur de la discussion Initiateur de la discussion benamedexcel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

benamedexcel

Guest
Bonjour;
Voilà, j'ai un certain nombre de classeur qui sont dispoées de meme structure càd meme appelation des feuilles et meme disposition des données, mon but et d'importer un certains nombre de clonnes de ces classeurs avec la methode ADO, je vous serrais trés reconnaissant, je suis vraiment dans un embaras.
 
Re : Methode ADO

Bonjour,
J'utilise pour récupèrer des données d'un classeur fermé le code ci-dessous.
Si ça peut t'aider.
Des exemples ici
Erlandsen Data Consulting
Code:
Sub Impoorte()
    Chemin = ActiveWorkbook.Path
    GetDataFromClosedWorkbook Chemin & "\Données\Report.xls", "MyDataRange", Range("A1"), True
End Sub
 
 
Sub GetDataFromClosedWorkbook(SourceFile As String, SourceRange As String, _
                              TargetRange As Range, IncludeFieldNames As Boolean)
    ' requires a reference to the Microsoft ActiveX Data Objects library
    ' if SourceRange is a range reference:
    '   this will return data from the first worksheet in SourceFile
    ' if SourceRange is a defined name reference:
    '   this will return data from any worksheet in SourceFile
    ' SourceRange must include the range headers
    '
    Dim dbConnection As ADODB.Connection, rs As ADODB.Recordset
    Dim dbConnectionString As String
    Dim TargetCell As Range, I As Integer
    dbConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};" & _
                         "ReadOnly=1;DBQ=" & SourceFile
    Set dbConnection = New ADODB.Connection
    On Error GoTo InvalidInput
    dbConnection.Open dbConnectionString    ' open the database connection
    Set rs = dbConnection.Execute("[" & SourceRange & "]")
    Set TargetCell = TargetRange.Cells(1, 1)
    If IncludeFieldNames Then
        For I = 0 To rs.Fields.Count - 1
            TargetCell.Offset(0, I).Formula = rs.Fields(I).Name
        Next I
        Set TargetCell = TargetCell.Offset(1, 0)
    End If
    TargetCell.CopyFromRecordset rs
    rs.Close
    dbConnection.Close    ' close the database connection
    Set TargetCell = Nothing
    Set rs = Nothing
    Set dbConnection = Nothing
    On Error GoTo 0
    Exit Sub
InvalidInput:
    MsgBox "The source file or source range is invalid!", _
           vbExclamation, "Get data from closed workbook"
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
761
Réponses
3
Affichages
655
Retour