erreur 2042 dans boucle

flo2002

XLDnaute Impliqué
Re bonjour à tous,
un probleme recurant dans mes fichiers cette erreur 2042.
Voici la boucle qui me pose aujourd'hui un probleme:

Dim i
For i = 1 To c21
If Range("b" & i).Value Like "Somme*" Then Cells(i, 2).Delete
Next i

une idée?
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : erreur 2042 dans boucle

Bonjour Flo, bonjour le forum,

Moi c'est plutôt To c21 qui me gêne... Mais par contre je n'ai pas l'erreur 2042 ??? Comme si j'avais une gestion d'erreur, ça passe directement à End Sub. Pourtant Cells(c21, 2) ça devrait planter !?
Sinon je ne pense pas que tu aies besoin de sortie. Si la condition n'est pas vérifiée le code poursuit la boucle à l'i suivant. Bizarre... Mais de toutes manières tu dois modifier c21 et déclarer i comme Integer ou Long mais dans l'état, comme Variant c'est dommage d'utiliser toute cette mémoire de stockage...
 

flo2002

XLDnaute Impliqué
Re : erreur 2042 dans boucle

c21 est bien definit par : c21 = ws2.Range("B65536").End(xlUp).Row

j'ai mis:

Dim i
c21 = ws2.Range("B65536").End(xlUp).Row

For i = c21 To 1
If Range("b" & i).Value Like "Somme*" Then Cells(i, 2).Delete
Next i

For i = c21 To 1
If Range("b" & i).Value Like "somme*" Then Cells(i, 2).Delete
Next i
et il ne plante plus..... mais il ne me supprime pas les "somme".
Une idée?
 

flo2002

XLDnaute Impliqué
Re : erreur 2042 dans boucle

re et quand je rajoute un step -1 (qui doit vouloir dire tu remonte),

il me mets une erreur d'execution 13, incompatibilité de type.
j'ai donc:
Dim i
c21 = ws2.Range("B65536").End(xlUp).Row

For i = c21 To 1 Step -1
If Range("b" & i).Value Like "Somme*" Then Cells(i, 2).Delete
Next i

merci d'avance pour toutes lumieres
 

dg62

XLDnaute Barbatruc
Re : erreur 2042 dans boucle

re


je viens de faire iun essai avec une liste numérotée

Somme1 à Somme25 et là chose curieuse la proc efface 1 ligne sur 2. A l'exécution suivante elle recommence 1 sur deux et ainsi de suite jusque la fin.

I s'incrémente bien
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : erreur 2042 dans boucle

Bonjour le fil, le forum,

Aucun soucis ça tourne :

Code:
Dim c21 As Long 'please
Dim i As Long 'please aussi
 
c21 = ws2.Range("B65536").End(xlUp).Row
 
For i = c21 To 1 Step -1
If Range("b" & i).Value Like "Somme*" Then Cells(i, 2).Delete
Next i

Il faut justement partir d'en bas et remonter pour éviter de faire une ligne sur deux quand la condition est vérifiée deux fois de suite...
 

flo2002

XLDnaute Impliqué
Re : erreur 2042 dans boucle

j'ai mis:

Dim i
c21 = ws2.Range("B65536").End(xlUp).Row

For i = 1 To c21
If Range("b" & i).Value Like "Somme*" Then Cells(i, 2).Select
Selection.Delete Shift:=xlUp
Next i

et il fait le menage, de toutes les lignes en bas... mais pas les bonnes!
 

flo2002

XLDnaute Impliqué
Re : erreur 2042 dans boucle

les deux en faite, celui que tu vien de me donner me fait l'erreur 13 qui se traduit par une erreur 2042 sur le range(...).
Quand à l'autre boucle, ca va faire dix minutes qu'elle tourne, je crois que je vais la laisser toute la nuit lol!
 

Discussions similaires

Réponses
11
Affichages
236