Boucle "for" qui bute sur une incompatibilité de type

Bonjour le forum,

Je me permets de vous appeler à l'aide concernant une partie de macro qui se termine par une erreur : "incompatibilité de type".

L'idée (simple) de la boucle est de parcourir des lignes de données et de supprimer les lignes qui contiennent "#N/A"

Je vous joins ce code, ainsi qu'un extrait du fichier Excel contenant le bout de macro :

Sub boucle()

cpt1 = Range("B" & Rows.Count).End(xlUp).Row

Range("A6").Select

For j = cpt1 To 6 Step -1

If Range("G" & j).Value <> "#N/A" Then Rows(j).Delete

If Range("G" & j).Value = "#N/A" Then Exit For

Next j

End Sub

Je bute sur cette erreur depuis plusieurs heures...La boucle tourne bien et supprime les lignes, puis plante à la fin.

Merci d'avance de vos conseils !

Michael

Bonjour,

Teste comme ceci

Sub boucle()

cpt1 = Range("B" & Rows.Count).End(xlUp).Row

    Range("A6").Select

    For j = cpt1 To 6 Step -1
    If Range("G" & j).Text <> "#N/A" Then Rows(j).Delete
    If Range("G" & j).Text = "#N/A" Then Exit For

    Next j

End Sub

bonjour,

L’erreur #N/A indique généralement qu’une formule ne trouve pas ce qu’elle est censée rechercher.

Toi tu utilises cette expression comme un string ! Pas terrible...

Tu peux néanmoins essayer un truc de ce genre :

Sub boucle()
cpt1 = Range("B" & Rows.Count).End(xlUp).Row
    Range("A6").Select
    For j = cpt1 To 6 Step -1
      If Not WorksheetFunction.IsNA(Range("G" & j).Value) = True Then Rows(j).Delete Else Exit For
    Next j
End Sub

A+

Merci bien !

ce n'était donc pas une erreur de logique, mais de syntaxe

Bravo et merci

Bonjour,

Teste comme ceci

Sub boucle()

cpt1 = Range("B" & Rows.Count).End(xlUp).Row

    Range("A6").Select

    For j = cpt1 To 6 Step -1
    If Range("G" & j).Text <> "#N/A" Then Rows(j).Delete
    If Range("G" & j).Text = "#N/A" Then Exit For

    Next j

End Sub
Rechercher des sujets similaires à "boucle qui bute incompatibilite type"