Je reçois une erreur "Indice hors limites". J'ai deux cahiers d'exercices. J'essaie de VLOOKUP valeurs dans chaque feuille de classeur A de sa feuille correspondante dans le classeur B. Les noms de feuille sont les mêmes dans les deux classeurs sauf que le premier classeur a des feuilles supplémentaires sans feuilles correspondantes dans classeur B. Où vais-je faux.VLOOKUP avec une autre feuille de calcul
Sub Update1()
Dim x As Integer
Dim y As Integer
x = ActiveWorkbook.Sheets.Count
For y = 1 To x
Dim wsheet As String '1
Dim wrange As Range '2
wsheet = ActiveWorkbook.Worksheets(y).Name '3
Set wrange = Application.Workbooks("2012SWD.xlsx").Worksheets(wsheet).Range("A1:G100") '4
For n = 1 To 100
If SOME CONDITION Then
Sheets(y).Range("T" & n).Value = WorsheetFunction.VLookup("A" & n, wrange, 3, False)
End If
Next n
Next y
End Sub
Le problème est avec l'un des plusieurs des lignes 1,2,3,4
est une condition Left(Sheets(y).Range("A" & n), 2) Like "CA"
Soit: 'a ActiveWorkbook'
ActiveWorkbook possède des feuilles y, car j'ai défini le nombre de feuilles du classeur actif sur X et y prend les valeurs comprises entre 1 et X. 2012SWD.xlsx était ouvert. Les deux premières possibilités sont totalement exclues, la troisième possibilité mise en évidence par vous est la cause du message d'erreur. Je définis une variable de plage avec une plage sur une feuille qui n'existe pas. –
J'ai résolu le problème en exécutant la macro individuellement pour les feuilles de calcul qui ont une feuille de calcul correspondante dans le classeur B au lieu d'avoir la boucle VBA pour les feuilles de calcul dans un autre classeur. Même si l'une des feuilles de calcul ne correspond pas, l'indice hors limites apparaît. Existe-t-il une fonction de suppression d'erreur capable de vérifier les réponses 'SubScript hors limites'? –