Erreur 1004 méthode 'Range' dans boucle
Keyran
-
Keyran -
Keyran -
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') :
Merci de votre aide, je ne trouve pas du tout le soucis.
Rose
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. |
A voir également:
- Erreur 1004 méthode 'Range' dans boucle
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Erreur 0x80070643 - Accueil - Windows
- Out of range écran - Forum Windows
- Erreur t32 ✓ - Forum Livebox
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
2 réponses
Bonjour Keyran, bonjour le forum,
Peut-être comme ça :
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
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 ?
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 ?