Pb : Variable objet ou variable de bloc With non définie
Bonjour forum,
Le code suivant me retourne l'erreur : Variable objet ou variable de bloc With non définie
Sub corrigeOrtho()
Dim Sh As Worksheet
fautes = Array("Gommes", "Règle Transparent 20 cm Atuglass ", "Règle plate Transparente 20 cm ", _
"Règle Cristal Incolore 30 cm", "Règle plate Transparente 30 cm ", "Aimants ""puissant"" - Rouges", _
"Brosse Tableau Velleda", "Porte-Blocs cube ""Translucide""", "Feuilles Doubles P.C", _
"Chemise à sangle - Canari", " "" "" - Gris", _
" "" "" - Noir", "112 x 220 Blanche. AutoC. Av Fenêtre", _
"229 x 324 Kraft Soufflet 30")
correctifs = Array("Gomme", "Règle plate Transparente 20 cm", "Règle plate Transparente 20 cm", _
"Règle plate Transparente 30 cm", "Règle plate Transparente 30 cm", "Aimants ""puissants"" - Rouges", _
"Brosse Tableau Blanc Velleda", "Porte - Bloc cube ""Translucide""", "Feuilles Doubles P.C (x400)", _
"Chemise à sangle - Canari", " "" "" - Gris", _
" "" "" - Noir", "112 x 220 Blanch. AutoC. Av Fenêtre", _
"229 x 324 Kraft soufflet 30")
With Sh
For Each ft In fautes
.Cells.Replace What:=ft, Replacement:=correctifs(i), LookAt:=xlWhole
i = i + 1
Next ft
End With
End SubA la ligne :
With Sh
For Each ft In fautes
.Cells.Replace What:=ft, Replacement:=correctifs(i), LookAt:=xlWhole
i = i + 1
Next ft
End WithJe n'arrive pas à comprendre pourquoi. Il me semblait que le code était juste!
Merci d'avance pour vos éclaircissements.
Bonjour
Tu défini ta variable Sh comme étant de type Worsheet, mais tu ne lui affecte aucun objet feuille.
avant "With Sh", tu peux ajouter, par exemple
Set Sh = ActiveSheet
Cordialement
Bonjour Demeb,
Merci pour la réactivité!
En fait je voudrais appliquer la macro corrigeOrtho sur toutes les feuilles d'un classeur mais apparemment ce que tu m'as dit de faire ne marche pas!
Où est le problème?
Pour appliquer la macro à toutes les pages du classeur actif, tu peux écrire
Sub corrigeOrtho()
Dim Sh As Worksheet
fautes = Array("Gommes", "Règle Transparent 20 cm Atuglass ", "Règle plate Transparente 20 cm ", _
"Règle Cristal Incolore 30 cm", "Règle plate Transparente 30 cm ", "Aimants ""puissant"" - Rouges", _
"Brosse Tableau Velleda", "Porte-Blocs cube ""Translucide""", "Feuilles Doubles P.C", _
"Chemise à sangle - Canari", " "" "" - Gris", _
" "" "" - Noir", "112 x 220 Blanche. AutoC. Av Fenêtre", _
"229 x 324 Kraft Soufflet 30")
correctifs = Array("Gomme", "Règle plate Transparente 20 cm", "Règle plate Transparente 20 cm", _
"Règle plate Transparente 30 cm", "Règle plate Transparente 30 cm", "Aimants ""puissants"" - Rouges", _
"Brosse Tableau Blanc Velleda", "Porte - Bloc cube ""Translucide""", "Feuilles Doubles P.C (x400)", _
"Chemise à sangle - Canari", " "" "" - Gris", _
" "" "" - Noir", "112 x 220 Blanch. AutoC. Av Fenêtre", _
"229 x 324 Kraft soufflet 30")
For Each Sh In ActiveWorkbook.Worksheets
With Sh
i = 0
For Each ft In fautes
.Cells.Replace What:=ft, Replacement:=correctifs(i), LookAt:=xlWhole
i = i + 1
Next ft
End With
Next Sh
End Sub
Merci beaucoup Demeb! C(est ce que je voulais!