Rechercher : dans
Par :

(VBA EXCEL)Suprimer de lignes contenant #N/A

Dernière réponse le 31 déc 2007 à 14:09:59 Okalys, le 30 déc 2007 à 18:49:21 
 Signaler ce message aux modérateurs

Bonjour,

Après longue recherche et n'ayant rien trouvé à ce sujet, je poste sur ce site en espérant trouver une solution à mon problème. Je souhaiterait supprimer les lignes entières contenant le symbole #N/A présent dans une des des colonnes (colonne B) de mon tableau par l'intermédiaire de VBA.

Merci de votre implication

Configuration: Windows XP
Internet Explorer 7.0

1

aquarelle, le 30 déc 2007 à 19:04:40

Bonsoir,
essaie cette macro :

Sub SupprLigne()

Dim x As Long
Dim y As Long

x = Range("A65536").End(xlUp).Row

For y = x To 1 Step -1

    If Cells(y, 2).Value = #N/A Then
    
        Rows(y).Delete
    
    End If

Next y

End Sub


Bonne soirée

PS : à tester sur une copie du fichier avant au cas où...
"Pour trouver une solution à ses problèmes, il faut s'en donner la peine."

Répondre à aquarelle

2

marcelliy, le 31 déc 2007 à 09:28:35

Bonjour,

Merci pour ce morceau de code. Je l'ai essayé. J'ai aussi remis des " " pour le "#N/A" car le programme mes les demandait.

Dim x As Long
Dim y As Long
x = Range("A65536").End(xlUp).Row

For y = x To 1 Step -1

If Cells(y, 2).Value = "#N/A" Then --->

Rows(y).Delete

End If

Next y

pour la ligne que j'ai noté d'un ---> j'ai une erreur d'execution "13" Incompatibilité de type

Donc il y a un problème à quelque part mais je ne sais pas où.

Merci de voir si c'est possible de trouver une solution

marcelliy

Répondre à marcelliy

3

aquarelle, le 31 déc 2007 à 10:38:08

Bonjour,
Voici la nouvelle macro :

Sub SupprLigne()

Dim x As Long
Dim y As Long

x = Range("A65536").End(xlUp).Row

For y = x To 1 Step -1

    If Cells(y, 2).Value = xlErrNA Then
    
        Rows(y).Delete
    
    End If

Next y

End Sub


Bonne fin de journée et meilleurs voeux pour cette nouvelle année toute proche.
"Pour trouver une solution à ses problèmes, il faut s'en donner la peine."

Répondre à aquarelle

4

Okalys, le 31 déc 2007 à 10:38:58

Bonjour,
Merci pour vos réponses et votre réactivité,
Bonne journée et également tout mes voeux pour 2008

Okalys

Répondre à Okalys

5

Okalys, le 31 déc 2007 à 10:58:57

Je viens de tester votre nouvelle solution malheureusement le problème reste le même. il y a toujours une erreur d'exécution 13 au même endroit.

Dim x As Long
Dim y As Long

x = Range("A65536").End(xlUp).Row

For y = x To 1 Step -1

If Cells(y, 2).Value = xlErrNA Then <------

Rows(y).Delete

End If

Next y

Merci pour vos autres solutions

Okalys

Répondre à Okalys

6

aquarelle, le 31 déc 2007 à 11:59:56

Autres macros qui j'espère cette fois fonctionnera :))

Sub suppressionLigne_SiErreur_NA()
    Dim x As Long
    
    For x = 65536 To 1 Step -1

        If WorksheetFunction.IsError(Range("B" & x)) = True Then
            If CVErr(xlErrNA) = Range("B" & x) Then _
                Rows(x).EntireRow.Delete
        End If

    Next x

End Sub

Bonne journée
"Pour trouver une solution à ses problèmes, il faut s'en donner la peine."

Répondre à aquarelle

7

Okalys, le 31 déc 2007 à 12:08:13

Merci bien de votre aide et d'avoir résolu mon problème.
Cette solution marche impécablement.

Bonne journée

Répondre à Okalys

8

 aquarelle, le 31 déc 2007 à 14:09:59

Super !!!, bonne journée et bon réveillon

"Pour trouver une solution à ses problèmes, il faut s'en donner la peine."

Répondre à aquarelle