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

guenfood

XLDnaute Occasionnel
Bonjour,

J'ai un problème avec la macro que j'ai créé ci-dessous.
Je souhaite qu'elle m'ouvre tous les fichiers en .html d'un répertoire que je choisis, et qu'elle aille me chercher les valeurs de la ligne 13 pour les coller dans mon classeur excel.
Là, cela me boucle toujours sur le même fichier html.
Obligé de couper excel avec le gestionnaire des tâches.
Que dois-je modifier pour que cela fonctionne ?

Merci par avance pour votre aide.


Code:
Dim a As Workbook
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim chemin$, Classeur$, MAJ1$, MAJ2
Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
    
    On Error Resume Next
    Set oFolderItem = objFolder.Items.Item
    chemin = oFolderItem.Path
    
Classeur = Dir(chemin & "\*.html")
Set a = ThisWorkbook
Do While Classeur <> Empty
    With Workbooks.Open(chemin & "\" & Classeur)
        With .Sheets(1)
    Rows("13:13").Select
    Selection.Copy
    Windows("Classeur1").Activate
    .Range("A65356").End(xlUp).Row 1
    ActiveSheet.Paste
    End With
    .Close True
    End With
    Loop
End Sub
 
Re : Erreur sur macro

Bonjour,
Non testé
Code:
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim i&, c as Range, chemin$, Classeur$
i = 1
Set c = Range("A65356").End(xlUp)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
chemin = objFolder.Items.Item.Path
If chemin = "" Then Exit Sub
Classeur = Dir(chemin & "\*.html")
Do While Classeur <> Empty
    Set wb = Workbooks.Open(chemin & "\" & Classeur)
    Sheets(1).Rows(13).Cells.Copy c.Offset(i)
    wb.Close False
    i = i + 1
    Classeur = Dir() 'Passe au fichier suivant
Loop
A+
kjin
 
- 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

Discussions similaires

Réponses
4
Affichages
179
Réponses
9
Affichages
582
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
819
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
173
Retour