Bonjour,
J'ai crée un classeur excel qui centralise des données dans le sens où il récupère les données de plusieurs autres classeurs bâtis de la même manière. Mon souci c'est que pour l'importation des données sur le fichier principal en question, cela demande à ouvrir les autres classeurs le temps de la copie et donc qu'ils soient préalablement fermés. Si le classeur est déjà ouvert, j'ai le message comme quoi une 2e ouverture du fichier peut entrainer la perte de tout élément non sauvegardé, etc., ce dont je ne tiens pas.
Ma question est donc de savoir s'il est possible de récupérer des données sans avoir à ouvrir les fichiers?
Si ca peut aider à comprendre, mon code actuel:
J'ai crée un classeur excel qui centralise des données dans le sens où il récupère les données de plusieurs autres classeurs bâtis de la même manière. Mon souci c'est que pour l'importation des données sur le fichier principal en question, cela demande à ouvrir les autres classeurs le temps de la copie et donc qu'ils soient préalablement fermés. Si le classeur est déjà ouvert, j'ai le message comme quoi une 2e ouverture du fichier peut entrainer la perte de tout élément non sauvegardé, etc., ce dont je ne tiens pas.
Ma question est donc de savoir s'il est possible de récupérer des données sans avoir à ouvrir les fichiers?
Si ca peut aider à comprendre, mon code actuel:
Code:
Private Sub CommandButton2_Click()
Dim wbk As Workbook, awbk As Workbook
Dim wsh As Worksheet
Dim Fich As String
Dim Ligne As Double
Application.ScreenUpdating = False
Set awbk = ThisWorkbook
Set wsh = awbk.Sheets("Donnees regroupees")
Fich = Dir("C:\Users\M\Documents\*.xls")
Do While Fich <> ""
With wsh
Ligne = .Range("A65536").End(xlUp).Row + 1
Set wbk = Workbooks.Open("C:\Users\M\Documents\Fla\" & Fich)
wbk.Sheets("Decompte temps").Range("listeplagesource").Copy.Cells(Ligne, 1)
End With
wbk.Close False
Fich = Dir
Set wbk = Nothing
Loop
Set wsh = Nothing
Set awbk = Nothing
Application.ScreenUpdating = True
End Sub