IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro pour supprimer les lignes avec #N/A [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Points : 16
    Points
    16
    Par défaut Macro pour supprimer les lignes avec #N/A
    Bonjour,

    Je cherche à faire une macro qui supprime les lignes qui ont #N/A dans la colonne G, j'ai donc fait le programme ci-dessous:

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub supprimer_les_NA()
    Sheets("Feuil1").Select
    Dim compteur As Integer
        'Balayage du tableau
        For compteur = 2 To Range("G2").End(xlDown).Row
        'Condition
         If Range("G" & compteur) = "#N/A" Then
            'Action sur la cellule cible
             Rows(compteur).Delete
        End If
    Next compteur
    End Sub

    Malheureusement, je n'arrive pas à supprimer la ligne en question. Le compteur augment quand il n'y pas d'action à faire mais lorsque l'on croise un #N/A dans mon tableau Excel, j'ai une erreur 13 sur la ligne en gras et une erreur 2042 au borne de cette fonction "Range("G" & compteur)".
    Pour info le #N/A n'est pas une fonction mais juste du texte dans une cellule qui est récupérer grâce à une autre macro.

    Est-ce que vous pouvez me dire où est mon erreur ? et comment on peut régler ça ?

    Cordialement,
    Frogg12

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub supprimer_les_NA()
        Dim compteur As Long
        Sheets("Feuil1").Select
        For compteur = Cells(Rows.Count, "G").End(xlDown).Row To 2 Step -1
            If Range("G" & compteur).Text = "#N/A" Then Rows(compteur).Delete
        Next compteur
    End Sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour Frogg12,

    La WorksheetFunction.IsNA te permet de faire le test si une valeur est "#N/A".

    Petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Option Explicit
     
    Sub RechercheErr()
    Dim oRng As Range
    Dim i As Integer
     
    Set oRng = Worksheets("Feuil1").Range("B1")
     
    For i = 0 To Worksheets("Feuil1").Cells(Rows.Count, 2).End(xlUp).Row - 1
        If WorksheetFunction.IsNA(oRng.Offset(i, 0)) Then
            MsgBox "Est NA"
        End If
    Next i
     
    End Sub
    Je te laisse adapter et revenir vers le forum si nécessaire !

    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  4. #4
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour à vous, Bonjour au Forum,

    pouvant être considérée comme 2ème argument de la méthode alors en 1 ligne sans balayage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Worksheets("Feuil2").Range("B3:B7").SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete
    (à adapter)

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  5. #5
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Merci, cela marche nickel chrome

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/09/2013, 18h30
  2. [XL-2010] Macro pour inserer des ligne avec les formules de la ligne au dessus
    Par Argonan dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/02/2012, 12h58
  3. Macro pour supprimer les lignes entre les titres
    Par nouvelinscrit dans le forum VBA Word
    Réponses: 17
    Dernier message: 05/10/2011, 20h48
  4. [XL-2007] Macro, pour supprimer les lignes contenant « #REF! »
    Par LittleDaddy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2011, 00h05
  5. Réponses: 7
    Dernier message: 02/07/2009, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo