VBA Excel: Ouvrir les fichiers d'un dossier

[Fermé]
Signaler
-
 TheMoon -
Bonjour,

Je suis débutant en VBA, et je dois, dans le cadre d'un stage réaliser une macro permettant dans un permier temps d'ouvrir tous les fichiers texte d'un dossier et d'en copier les valeurs dans un classeur Excel.

J'avais trouvé sur ce site déjà une fonction qui semblait convenir à mes besoins, une fois adaptée à mon soucis, celà donne:

Sub vide_dossier()

Dim col As Integer
Dim Fichier As String, Chemin As String
Dim wb As Workbook

'La variable "col stockée en IV65356 donne la première colonne vide où copier les données
If Range("IV65356") <> "" Then col = Range("IV65536")
If Range("IV65356") = "" Then col = 2

Chemin = disk & "\NOI tracabilité\Données\Résultats\2009\Spectroradiomètre 09\T1\" & dos
Fichier = Dir(Chemin & "*.txt")

Do While Fichier <> ""

Set wb = Workbook.Open(Chemin & Fichier)

Application.CutCopyMode = False
Range("A24:A2500").Select
Selection.Copy
Windows("Essai-Ouverture-Dossier.xls").Activate
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Windows(Fichier & ".txt").Activate
Range("B24:B2500").Select
Selection.Copy
Windows("Essai-Ouverture-Dossier.xls").Activate
Cells(1, col).Select
ActiveSheet.Paste
col = col + 1
Range("IV65356") = col

wb.Close True
Set wb = Nothing
Fichier = Dir

Loop

End Sub

Le problème est qu'au moment de l'execution, une erreur 424 se produit: "Objet requis" sur la ligne:

Set wb = Workbook.Open(Chemin & Fichier)

Je n'arrive pas à repérer d'où vient l'erreur, et donc comment la corriger, aussi tout avis serait le bienvenu.

Merci d'avance.

TheMoon

2 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 537
bonjour

disk est initialisé où ? est défini où ?

idem pour dos

ton Range("IV65356") est le meilleur moyen pour créer de méga classeurs.
Bonjour,

C'est bon, j'ai trouvé mon erreur, il s'agissait d'une faute d'orthographe ("workbook" au lieu de "workbooks"...).

En fait, comme la macro doit être utilisée depuis différents comptes d'utilisateurs sur différents PC dans le laboratoire où je travaille, la lettre d'identification du disque contenant les données peut varier d'une fois sur l'autre, aussi je demande de la préciser (par exemple: K:), c'est à cela que correspond la variable disk qui est déclarée en globale en tant que string et dont la valeur est obtenue via une textbox dans un userform.

La variable dos permettait de choisir le dossier à "vider" de ses fichiers textes pour effectuer la compilation, elle aussi est obtenue via une textbox sur le même userform (toujours en variable globale.).

Merci de t'être penché sur le problème, bonne continuation,

TheMoon