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
Si j'appelle la procédure sans faire de loop pour chaque sheet en lui
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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![]()
Partager