Dans Microsoft Excel, obtenir des informations à partir d’un classeur fermé est l’un des moyens les plus rapides d’obtenir des données précises à l’aide du code VBA. Dans cet article, nous allons apprendre à lire les informations d’un classeur fermé à l’aide de VBA dans Microsoft Excel.

Si vous recevez plusieurs fichiers par e-mail ou toute autre source et que vous souhaitez obtenir des informations stockées dans une cellule particulière, vous devriez lire ce didacticiel.

Pour comprendre cet exemple, nous devons créer des exemples de fichiers dans un chemin que nous utiliserons dans le code VBA; ici, nous avons sauvegardé quelques fichiers (fichiers Nord et Ouest) dans le chemin «D: \ testing».

Pour extraire les données de tous les fichiers Excel dans un dossier, nous devons suivre les étapes ci-dessous pour lancer l’éditeur VB:

Cliquez sur l’onglet Développeur Dans le groupe Code, sélectionnez Visual Basic

img1

  • Copiez le code ci-dessous dans le module standard

Sub ReadDataFromAllWorkbooksInFolder()

Dim FolderName As String, wbName As String, r As Long, cValue As Variant

Dim wbList() As String, wbCount As Integer, i As Integer

FolderName = "D:\testing"

' create list of workbooks in foldername' --- Comment

wbCount = 0

wbName = Dir(FolderName & "\" & "*.xls")

While wbName <> ""

wbCount = wbCount + 1

ReDim Preserve wbList(1 To wbCount)

wbList(wbCount) = wbName

wbName = Dir

Wend

If wbCount = 0 Then Exit Sub

' get values from each workbook' --- Comment

r = 0

Workbooks.Add

For i = 1 To wbCount

r = r + 1

cValue = GetInfoFromClosedFile(FolderName, wbList(i), "Sheet1", "A1")

Cells(r, 1).Formula = wbList(i)

Cells(r, 2).Formula = cValue

Next i

End Sub

Private Function GetInfoFromClosedFile(ByVal wbPath As String, _

wbName As String, wsName As String, cellRef As String) As Variant

Dim arg As String

GetInfoFromClosedFile = ""

If Right(wbPath, 1) <> "\" Then wbPath = wbPath & "\"

If Dir(wbPath & "\" & wbName) = "" Then Exit Function

arg = "'" & wbPath & "[" & wbName & "]" & _

wsName & "'!" & Range(cellRef).Address(True, True, xlR1C1)

On Error Resume Next

GetInfoFromClosedFile = ExecuteExcel4Macro(arg)

End Function

img2

img3

Nous devons exécuter la macro et ce qui suit sera l’instantané du résultat:

img4

===

Conclusion: En utilisant le code ci-dessus, nous pouvons obtenir des données d’un classeur fermé à partir d’une cellule spécifique.

Remarque: la cellule A1 est utilisée comme exemple; si vous souhaitez récupérer des données à partir d’une autre cellule, il vous suffit de mentionner cette cellule.

image 48

Si vous avez aimé nos blogs, partagez-les avec vos amis sur Facebook. Et vous pouvez aussi nous suivre sur Twitter et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer, compléter ou innover notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]