Erreur 1004 méthode 'Range' dans boucle

Fermé
Keyran - Modifié le 20 juin 2018 à 15:57
 Keyran - 21 juin 2018 à 13:28
Bonjour,

J'avais un macro très simple qui me permettait de supprimer la ligne d'un tableau si celle-ci comportait moins de 4 valeurs. Cela fonctionnait, mais j'ai voulu améliorer un peu tout ça en lançant le traitement automatiquement sur toutes les feuilles de mon classeur.
Depuis, mon code ne fonctionne plus et l'erreur s'affiche : "Erreur d'exécution '1004' : la méthode 'Range' de l'objet 'Worksheets' a échoué"

Je vous mets ici mon code défaillant. En gras ce que j'ai modifié depuis le programme qui fonctionnait (boucle + changé Sheets('Feuil1') en 'FS') :

<bold>Dim FS As Worksheet
For Each FS In Worksheets</bold>
Dim i As Integer
For i = 1700 To 3 Step -1
    If Application.WorksheetFunction.CountBlank(<bold>FS</bold>.Range(Cells(i, 30), Cells(i, 39))) > 4 Then
        Range(Cells(i, 29), Cells(i, 39)).Delete Shift:=xlUp
    End If
Next i
<bold>Next FS</bold>


Merci de votre aide, je ne trouve pas du tout le soucis.

Rose
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
20 juin 2018 à 16:32
Bonjour Keyran, bonjour le forum,

Peut-être comme ça :
Sub Macro1()
Dim FS As Worksheet
Dim i As Integer

For Each FS In Worksheets
    For i = 1700 To 3 Step -1
        If Application.WorksheetFunction.CountBlank(FS.Range(FS.Cells(i, 30), FS.Cells(i, 39))) > 4 Then
        FS.Range(FS.Cells(i, 29), FS.Cells(i, 39)).Delete Shift:=xlUp
    End If
    Next i
Next FS
End Sub


0
Résolu : Il me suffisait simplement de taper 'FS.Activate' après la ligne For Each FS In WorkSheets.

Ce n'est peut-être pas le plus élégant mais ça fonctionne, merci encore de votre aide !

PS : ayant posté ce message en invité, je ne suis pas reconnue comme son auteur et n'arrive pas à le mettre en résolu, une idée ?
0