[E-02]Loop sur les worksheets
Hello,
Un petit problème de débutant. Je désire boucler sur toutes les
sheets de mon Workbook et faire un refresh des données qui s'y
trouvent. J'ai donc créé une petite procédure qui lance la query
et je l'appelle pour chaque sheet. Hélas quand j'exécute le code
ci-dessous j'ai le message d'erreur suivant à la ligne :
Set QRY = Worksheets(MyName).QueryTables(1)
Run-time error 9
Subscript out of range
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Dim tWorkSheet As Excel.Worksheet
For Each tWorkSheet In ThisWorkbook.Worksheets
Sheet_Refresh (tWorkSheet.Name)
Next tWorkSheet
---------------------------------------------------
Private Sub Sheet_Refresh(MyName)
MySp = Worksheets("MENU").Range("D5").Value
Set QRY = Worksheets(MyName).QueryTables(1)
MySql = "EXEC " & MySp & " " & "@bu = N'" & MyName & "'"
QRY.CommandText = MySql
QRY.Refresh (False)
End Sub |
Si j'appelle la procédure sans faire de loop pour chaque sheet en lui
passant son nom en paramètre, le code fonctionne...
Quelqu'un pourrait me donner une piste sur la raison de cette erreur ?
Je vous remercie d'avance :mrgreen: