Récupération de données sur plusieurs fichiers (prob lecture seul)
Bonjour à vous,
J'ai une macro qui fonctionne très bien pour aller récupérer et additionner ces données provenant de plusieurs fichiers contenus dans un même dossier.
Voici ma macro:
Sub Actualisation()
' Microsoft ActiveX DataObject doit être coché
Dim LesLignes
Dim I As Integer, J As Integer, K As Integer
Dim Cnn As Object, Rs As Object
Dim Tbl
Dim Somme()
Application.ScreenUpdating = False
If Sheets("Sommaire").Range("B4") = "[Choisir votre section]" Then
Exit Sub
Else
Sheets("Sommaire").Unprotect "essai"
M_A_J.Show vbModeless 'affiche l'userform nommé "patience"
M_A_J.Repaint 'rafraichit le contenu à placer
'commence le traitement
ReDim Somme(1 To 312)
Chemin = ThisWorkbook.Path & "\": Feuille = "Sommaire"
LesLignes = Array(8, 10, 15, 17, 22, 24, 29, 31, 36, 38, 43, 45, 50, 52, 57, 59, 64, 66, 71, 73, 78, 80, 85, 87)
For J = LBound(LesLignes) To UBound(LesLignes)
For K = 1 To 13
Sheets("Sommaire").Cells(LesLignes(J), K).ClearContents
Next K
Next J
Fichier = Dir(Chemin & "*.xlsm")
Do While Len(Fichier) > 0
If Fichier <> ThisWorkbook.Name Then
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
Chemin & Fichier & ";Extended Properties='Excel 12.0;HDR=No'"
Set Rs = Cnn.Execute("[Sommaire$A1:M87]")
Tbl = Rs.GetRows
I = 1
For J = LBound(LesLignes) To UBound(LesLignes)
For K = 1 To 13
Somme(I) = CDbl(Somme(I)) + CDbl(Tbl(K - 1, LesLignes(J) - 1)): I = I + 1
Next K
Next J
Rs.Close
Cnn.Close
End If
Fichier = Dir()
Loop
Set Rs = Nothing
Set Cnn = Nothing
With Sheets("Sommaire")
I = 1
For J = LBound(LesLignes) To UBound(LesLignes)
For K = 1 To 13
.Cells(LesLignes(J), K) = Somme(I): I = I + 1
Next K
Next J
End With
Unload M_A_J 'décharge l'userform de la mémoire
End If
Sheets("Sommaire").Protect "essai"
Application.ScreenUpdating = True
End SubJ'ai une problématique lorsque le fichier est déjà ouvert par une autre utilisateur.
Le fichier tombe alors en lecture seul et un message d'erreur s'affiche.
Erreur d'exécution '1004':La cellule ou le graphique que vous essayer de modifier se trouve sur une feuille protégée. Pour apporter une modification à celui-ci, vous devez ôter la protection de la feuille....
Pourtant si aucun fichier n'est ouvert, je n'obtient pas ce message.
Est-ce possible de contourner cette erreur?
Ou faire en sorte que même si le fichier est ouvert d'aller récupérer les données en lecture seul!!
Merci de votre aide.