Run-time error '9': Subscript out of range
Bonjour à tous !
Je sais que cette erreur à déjà été traitée de nombreuses fois, mais je n'ai malheureusement pas pû trouver réponse à ma situation malgrès les nombreuses solutions proposées. Je me retourne donc vers vous.
Je dois extraire des infos de plus de 5000 fichiers excel (infos de form controls, activeX, ext ...). Pour cela, je possède un fichier contenant toutes les infos nécessaires à cette extraction de données :
- Une première colonne contenant le nom de mon fichier
- Une seconde contenant le chemin de mon fichier
- Les prochaines colonnes serviront à stocker les données nécessaires
Je possède le bout de code suivant (je veux tout d'abord boucler sur les 900 premiers fichiers) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Dim YSheet As Integer
Sub GetDataFromFile()
Dim sh As Worksheet
Dim File As String
Set sh = ActiveSheet
YSheet = 2
While YSheet <> 900
File = Workbooks("Mydatas.xlsm").Worksheets("Feuil1").Cells(YSheet, 2).Value
Workbooks.Open Filename:=File
If IsWorksheet("MachineDatas") = True Then
Worksheets("MachineDatas").Activate
Else
GoTo NextIteration
End If
CheckBoxAndOptions
TextBox
Other
NextIteration:
Application.DisplayAlerts = False
If ActiveWorkbook.Name = Workbooks("Mydatas.xlsm").Worksheets("Feuil1").Cells(YSheet, 1).Value Then ActiveWorkbook.Close
Application.DisplayAlerts = True
YSheet = YSheet + 1
Wend
End Sub |
Pour les fichiers ne possédant pas la feuille "MachineDatas", je veux l'ignorer et passer au fichier suivant.
Le code ci-dessus marche très bien dans 90% des cas, je ne viens pas forcément vers vous pour trouver une solution toute faite, mais pour comprendre quelle est l'origine de mon problème. Dans les 10% restant, l'erreur suivante apparait pour la ligne de mon code en rouge :
Citation:
Run-time error '9':
Subscript out of range
Cependant, mon fichier s'ouvre quand même et c'est la que je ne comprends pas quel est le réel problème. Etant donné que le fichier s'était bien ouvert, j'ai essayé d'esquiver l'erreur avec un On Error Resume Next mais je ne dois pas assez bien maîtriser ceci pour l'utiliser, de plus, ça m'embête de laisser passer ceci sans même l'avoir compris.
Le chemin de mon fichier est exact, l'extension de mes fichiers aussi, tout se passé sans encombre quand je copy past le path de mon fichier.
Je vous remercie par avance du temps accordé à mon problème, et je vous souhaite une agreeable journée,
Cordialement,
François