Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Lecture d'un 2e classeur

  • Initiateur de la discussion Initiateur de la discussion Raton
  • 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 !

R

Raton

Guest
Bonjour,
La réponse se trouve certainement sur le forum mais je ne trouve pas, faut dire que la theme est vaste et que beaucoup on déjà été fais deçu.
J'ai pour le moment 2 feuilles dans un seul classeur, la feuille principale fait une mise à jour à partir de la 2e via une macro. Mais la 2e feuille vient d'un autre classeur et j'aimerais donc ne plus avoir à ajouter cette feuille au classeur. Mais comment faire pour "lire" une feuille d'un autre classeur déjà ouvert?
Merci a vous
 
Re : Lecture d'un 2e classeur

Bonjour,
Dans ce cas, voilà comment je procéde

Dans mon classeur actif N°1, j'ajoute une nouvelle feuille (Feuil2) et je ramène les données du second classeur N° 2 bien qu'il soit fermé.
Ce classeur N° 2 doit avoir une plage nommée MyDataRange, plage qui sera ramenée dans la feuille Feuil2 du classeur N°1.

Appel de la procédure GetDataFromClosedWorkbook
Code:
Sub Importe()
    GetDataFromClosedWorkbook "C:\Excel\Liste des codes défaut.xls", "MyDataRange", Range("A1"), True
End Sub

La procédure GetDataFromClosedWorkbook ...
Code:
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
 
Dernière édition:
Re : Lecture d'un 2e classeur

Bonjour,

J'ai peut-être mal expliqué. Ce que j'aimerais c'est pouvoir lire un autre classeur déjà ouvert.
Donc j'ai mon classeur A, calsseur actif dans lequel se trouve une liste d'instrument, et mon classeur B dans lequel se trouve une autre liste d'instrument. Je voudrais que A soit capable de trouver les instruments de même noms dans B (sans devoir ajouter la feuille de B dans mon classeur A comme je le fais maintenant)

Merci tout de même
 
- 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

  • Question Question
XL 2019 User Form
Réponses
9
Affichages
526
Réponses
17
Affichages
877
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
452
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…