Accélérer ou simplifier macro de récupération de données

flosauveur69

XLDnaute Occasionnel
Bonjour à tous,

j'ai la macro ci-dessous et j'aimerais une piste d'amélioration:
(A quoi sert la macro: elle m'ouvre un à un chaque fichiers html -ou xls selon le strfile données- se trouvant dans le même répertoire du classeur où se trouve la macro. Une fois ce fichier ouvert, elle me copier une plage de cellule dans la feuil1 et me ferme le fichier et ainsi de suite)

Comme dit au dessus, pour aller me copier-coller la plage de cellule voulue, cette macro, m'ouvre puis me ferme chacun des classeur html xls. J'aimerais, si possible, que la macro me récupère et me colle cette plage de cellule sans ouvrir puis fermer les classeurs dans le but de gagner du temps.

merci d'avance de votre aide.

la macro:(ce n'est pas moi qui l'ai faite car étant novice VBA, je l'ai juste un peu modifier)

Public Sub cmdRecupere_Click()
Dim strWB As String, strFile As String

Application.ScreenUpdating = False
Application.EnableEvents = False

' Nom du classeur actuel
strWB = ThisWorkbook.Name

' Récupération du premier fichier dans le répertoire et sous repertoire
strFile = Dir(ThisWorkbook.Path & "\*.html")

' Boucle du 1er au dernier classeur dans le répertoire et sous repertoire
Do While strFile <> ""
' Si le classeur n'est pas "Total.xls" et si son nom n'existe pas en colonne C
If strFile <> strWB And Worksheets("Feuil1").Columns("C").Find(strFile, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
' Ouvrir le fichier
Workbooks.Open ThisWorkbook.Path & "\" & strFile

' Copie des données
Workbooks(strFile).Worksheets(1).Range("A13:C28").Copy
With Workbooks(strWB).Worksheets("Feuil1")
.Range("A2").Insert xlDown 'insertion en ligne 2
.Range("C2:C17").ClearContents 'on ne garde que les données A2:B17
.Range("C2") = strFile
End With

' Fermeture du classeur
Workbooks(strFile).Close
End If

' Classeur suivant
strFile = Dir
Loop

Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "Le traitement des fichiers est terminé.", vbInformation, "Traitement..."
End Sub
 

flosauveur69

XLDnaute Occasionnel

flosauveur69

XLDnaute Occasionnel
Re : Accélérer ou simplifier macro de récupération de données

Bonjour,

étant novice en VBA, j'ai essayé d'adapter ce que j'ai trouvé à ma macro mais cela ne fonctionne pas.

Auriez vous des pistes?

J'ai essayé de voir avec les liaisons mais je ne sais pas si cela peut convenir.

Merci d'avance.
 

Discussions similaires

Statistiques des forums

Discussions
312 757
Messages
2 091 773
Membres
105 068
dernier inscrit
celome