replay | Bonjour,
Je suis actuellement entrain de coder une macro qui permettrait de rechercher des macros dans les fichiers xls sur un disque dur, puis les lister.
Je travail par étape, pour l'instant je test l'ouverture, l'écriture (d'une simple bonjour), la sauvegarde, puis la fermeture du fichier destinataire
Actuellement je suis bloqué sur une erreur "Run-time error '9' : Subscript out of range" sur la ligne 72:
Code :
- Sub MacroTest()
- ' on efface les colonnes du resultat precedent
- Columns(1).Clear
- Columns(2).Clear
- Columns(3).Clear
- Columns(4).Clear
- Columns(5).Clear
- ' déclaration des variables
- Dim uneAppli As Excel.Application
- Dim leClasseur As Excel.Workbook
- Dim laSheet As Excel.Worksheet
- Dim unClasseur As Excel.Workbook
- Dim uneSheet As Excel.Worksheet
- Dim leRepertoireFichier As String
- Dim leNom As String
- Dim laTaille As Integer
- Dim leType As String
- Dim i As Integer
- Dim CountFile As Integer
- ' ouverture de l'application
- Set uneAppli = CreateObject("Excel.Application" )
- ' ouverture du classeur
- Set leClasseur = uneAppli.Workbooks.Open("P:\Test\liste_macro_G.xls" )
- ' mise en place de la premiere feuille du fichier
- Set laSheet = leClasseur.Worksheets("test" )
- ' debut de la boucle
- ' taille total de la recherche à indexé dans variable CountFile
- ' for i = 1 to .FoundFiles.Count step 1
-
- ' on active le classeur/feuille dans lequel on recherche le fichier
- ' leClasseur.Activate
- Worksheets("test" ).Activate
-
-
- ' on effectue le test if macro inside
- ' code à modifier, apparement le VBComponents permets de détecter de la macro inside
- ' ActiveWorkbook.VBProject.VBComponents. ActiveWorkbook.VBProject.VBComponents("Module1" )
-
-
-
- ' on récupere les differentes infos dont on a besoin
- ' recupere le nom du fichier
- ' Set leNom = ThisWorkbook.Name ---------------< a debloquer
-
- ' recupere la taille du fichier
- ' Debug.Print FileLen("nomdufichier" )
- ' Set laTaille = Workbooks(ActiveWorkbook.Name).FullName
- ' Set laTaille = ThisWorkbook.FullName ---------------< a debloquer
-
- ' recupere le type du fichier <------- COMMENT QUALIFIER TYPE FICHIER
- ' Set leType = michel
-
- ' recupere le repertoire du fichier
- ' GetRelativePath
- ' Set leRepertoire = Workbooks(ActiveWorkbook.Name).FullName ---------------< a debloquer
-
-
-
- Workbooks("P:\Test\liste_macro_G.xls" ).Worksheets("test" ).Cells(i, 1).Value = "bonjour"
- 'ThisWorkbook.Worksheets("test" ).Cells(i, 1).Value = "bonjour"
-
- Set leNom = "bonsoir"
-
- ' on ecrit dans la cellule du classeurRef
- ' With ThisWorkbook.Sheets("test" )
- With Workbooks("P:\Test\liste_macro_G.xls" ).Worksheets("test" )
- .Cells(i, 1).Value = leNom
- .Cells(i, 2) = leType
- .Cells(i, 3) = laTaille
- .Cells(i, 4) = leRepertoire
- ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 5)
- .Cells(i, 5) = leRepertoire
- End With
-
-
- ' on ferme le classeur dans lequel on recherche
- ThisWorkbook.Close SaveChanges:=True
- ' fin de la boucle
- ' next
- ThisWorkbook.Close SaveChanges:=True
- End Sub
|
Vous avez une idée, car perso je n'arrive pas à trouver ce que veut dire l'erreur ???
Merci
|