BOnsoir, je rencontre un pb actuellement, je m'explik
J'ai créé une macro qui ouvre tous les fichiers excel d'un dossier bien défini et je copie le chemin de chaque fichier xls trouvé sur une feulle ("copie") d'un classeur que j'ai nommé "intermediaire.xls". Ce que je veux c'est à chaque ouverture du fichier que cela m'execute une autre macro et sur cette macro je ne sais pas comment je dois déclaré ou spécifié le fichier qui est ouvert pour qu'elle le traite. Je vous indique les deux macros ci-dessous en espèrant que vous pourrez m'aider.
Merci d'avance
With fs
.LookIn = "C:\Documents and Settings\Utilisateur\Mes documents\Debit"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
w3.Cells(i, 6).Value = .FoundFiles(i)
Next i
For i = 1 To .FoundFiles.Count
data = w3.Cells(i + 5, 6).Value 'je donne au chemin indiqué sur la cellule le nom de data à chaque fois que j'ouvre un fichier du dossier
Set w4 = Application.Workbooks.Open(data) 'le ficher ouvert je l'appelle w4 pour le reutiliser sur l'autre macro
module1.traitement
Next
Else
MsgBox "Il n'y a aucun fichier."
End If
End With
End Sub
LA 2è macro qui traite le fichier ouvert
Sub traitement()
Set w3 = Workbooks("intermediaire.xls").Worksheets("copie")
nbrcolonne = w1.UsedRange.Columns.Count
For i = 1 To nbrcolonne
For Each C In w4.Range("P13:Z230") 'je fais appel au fichier que j'ai ouvert grâce à la 1ère macro et l'erreur vien de là
If C.Value = w1.Cells(1, i) Then
w3.Cells(2, i) = w4.Cells(C.Row, C.Column + w1.Cells(2, i))
w3.Cells(1, i) = w4.Cells(C.Row, C.Column)
Exit For
End If
Next
Next
Je voulais donc savoir comment je fais pour qu'à partir de la seconde macro que je puisse utiliser le fichier qui est ouvert à chaque fois
J'espère que j'ai été clair pour une meilleure compréhension
Merci