Senvisage
Habitué
Bonjour à tous
J'espère que l'un d'entre vous pourra m'aider, je galère sur un souci en VBA depuis vendredi...
Voilà le problème : Pour une de mes macros, j'ai besoin de modifier toutes les images nommées "Image1" d'un classeur Excel. Pour ce faire, j'utilise une boucle For (pour chaque feuille du classeur) et une boucle While à l'intérieur de celle-ci (pour traquer toutes les images).
Apparemment, la logique doit pas être mauvaise, parce que la 1ère feuille est traitée convenablement... mais jamais la seconde v_v
Je copie ici le fragment de la macro qui me pose problème :
[cpp]
For i = 1 To nbFeuilles
On Error GoTo Ign_err_boucle
Worksheets(i).Select
On Error GoTo E
Do While True
ActiveSheet.Shapes("Image1").Select <=C'est cette ligne qui provoque l'erreur "fatale"
hei = Selection.ShapeRange.Height
wid = Selection.ShapeRange.Width
lef = Selection.ShapeRange.Left
top = Selection.ShapeRange.Top
Selection.Delete
ActiveSheet.Paste
Selection.ShapeRange.Height = hei
Selection.ShapeRange.Width = wid
Selection.ShapeRange.Left = lef
Selection.ShapeRange.Top = top
Range("A1").Select
On Error GoTo Ign_err_boucle
Loop
Ign_err_boucle:
On Error GoTo E
Next i
[/cpp]
Je sais, c'est pas très élégant tout ça >.>
Le déroulement maintenant : le 1er onglet est traité comme il faut, toutes les images sont remplacées. La macro passe au 2nd onglet, toutes les images sont remplacées... et la macro plante juste avant de passer au 3eme. La ligne incriminée me renvoie alors l'erreur "The item with the specified name wasn't found."... Mais ca je le sais bien puisque quand il rencontre cette erreur, il est censé passer à la 3ème feuille de calcul >.<
Ce qui m'agace le plus, c'est le fait qu'il s'exécute parfaitement sur la 1ere feuille v_v
Donc, à vot'bon coeur m'sieurs-dames, si une ame charitable veut bien aider un pauvre débutant en VBA
J'espère que l'un d'entre vous pourra m'aider, je galère sur un souci en VBA depuis vendredi...
Voilà le problème : Pour une de mes macros, j'ai besoin de modifier toutes les images nommées "Image1" d'un classeur Excel. Pour ce faire, j'utilise une boucle For (pour chaque feuille du classeur) et une boucle While à l'intérieur de celle-ci (pour traquer toutes les images).
Apparemment, la logique doit pas être mauvaise, parce que la 1ère feuille est traitée convenablement... mais jamais la seconde v_v
Je copie ici le fragment de la macro qui me pose problème :
[cpp]
For i = 1 To nbFeuilles
On Error GoTo Ign_err_boucle
Worksheets(i).Select
On Error GoTo E
Do While True
ActiveSheet.Shapes("Image1").Select <=C'est cette ligne qui provoque l'erreur "fatale"
hei = Selection.ShapeRange.Height
wid = Selection.ShapeRange.Width
lef = Selection.ShapeRange.Left
top = Selection.ShapeRange.Top
Selection.Delete
ActiveSheet.Paste
Selection.ShapeRange.Height = hei
Selection.ShapeRange.Width = wid
Selection.ShapeRange.Left = lef
Selection.ShapeRange.Top = top
Range("A1").Select
On Error GoTo Ign_err_boucle
Loop
Ign_err_boucle:
On Error GoTo E
Next i
[/cpp]
Je sais, c'est pas très élégant tout ça >.>
Le déroulement maintenant : le 1er onglet est traité comme il faut, toutes les images sont remplacées. La macro passe au 2nd onglet, toutes les images sont remplacées... et la macro plante juste avant de passer au 3eme. La ligne incriminée me renvoie alors l'erreur "The item with the specified name wasn't found."... Mais ca je le sais bien puisque quand il rencontre cette erreur, il est censé passer à la 3ème feuille de calcul >.<
Ce qui m'agace le plus, c'est le fait qu'il s'exécute parfaitement sur la 1ere feuille v_v
Donc, à vot'bon coeur m'sieurs-dames, si une ame charitable veut bien aider un pauvre débutant en VBA