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?
 

dg62

XLDnaute Barbatruc
Re : erreur 2042 dans boucle

re


une autre proc qui part du haut
Code:
Sub essai()
Dim cel As Range
Dim j As Integer
j = 1
For Each cel In Range("B2:B100") ' a modifier pour adapter a ton cas
If Range("b" & j).Value Like "Somme*" Then
Cells(j, 2).Delete
j = j - 1
Else
j = j + 1
End If
Next cel


End Sub
 

Gorfael

XLDnaute Barbatruc
Re : erreur 2042 dans boucle

flo2002 à dit:
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!
Salut à tous
Bien ton code flo2002
je le lis :
pour i=1
si la cellule B1 = "somme*" alors la sélectionner
effacer la sélection (qui n'est pas B1, puisque b1<>"somme*")
Oups
Chez moi, celle-ci marche
PHP:
Sub Macro1()
Dim i
Dim c21 As Long
c21 = Range("B65536").End(xlUp).Row

For i = c21 To 1 Step -1
If UCase(Range("b" & i)) Like UCase("*Somme*") Then Range("b" & i).Delete

Next i
End Sub
je supprime bien la cellule sélectionnée qui contient le texte "somme"
A+
 
Dernière édition:

flo2002

XLDnaute Impliqué
Re : erreur 2042 dans boucle

Merci pour ton aide Dg62,
mais toujours le meme probleme ce qui me fait penser que le probleme vient de cette colonne B qui ne contient cependant que du texte venant de :
Dim n As Integer
Dim lign As Integer
Dim col As Collection

Set col = New Collection
For n = 1 To Range("A65536").End(xlUp).Row
On Error Resume Next
col.Add Range("A" & n), CStr(Range("A" & n))
On Error GoTo 0
Next n
lign = 1
For n = 1 To col.Count
Range("B" & lign) = col(n)
lign = lign + 1
Next n

rien d'anormal en soi.
 

flo2002

XLDnaute Impliqué
Re : erreur 2042 dans boucle

la macro, bancale mais qui marche (enfin qui boite...)

ws2.Select
Dim cel As Range
Dim j As Integer
j = 1
On Error Resume Next
For Each cel In Range("B1:B1000")
If Range("b" & j).Value Like "Somme*" Then
Cells(j, 2).Delete Shift:=xlUp
j = j - 1
Else
j = j + 1
End If
Next cel

On Error GoTo 0

merci à tous ca à l'air de tourner à peu près!
 

dg62

XLDnaute Barbatruc
Re : erreur 2042 dans boucle

Flo,

La macro de robert tourne bien qu'est-ce qui bloque ?

Code:
Sub essai()
Dim c21 As Long 'please
Dim i As Long 'please aussi
 
c21 = 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


End Sub
 

flo2002

XLDnaute Impliqué
Re : erreur 2042 dans boucle

Bonjour et merci de votre aide,
sur mon ordi la macro de Robert fonctionne jusqu'à ce qu'il n'y ai plus de somme ensuite ca plante. Donc pour palier ce probleme j'ai mis un on error resum next.
Merci encore de votre aide
 

Discussions similaires

Réponses
11
Affichages
236