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 :

Message d'erreur pour suppression de ligne sur VBA [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Par défaut Message d'erreur pour suppression de ligne sur VBA
    Chères amies, chers amis du forum

    J'ai codé un bout de macro qui a pour but de supprimer une sélection de cellule visible après avoir filtrer:

    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
     
    With Sheets("BDD")
        Nrow = Range(Cells(4, 1), Cells(4, 1).End(xlDown)).Count
        Ncol = Range(Cells(4, 1), Cells(4, 1).End(xlToRight)).Count
        .Select
        For j = 2 To intNcol
            vntTmpVector = Application.Index(Application.Transpose(gvVNTArrayQueryData), j)
            strTmpName = CStr(vntTmpVector(1))
            vntTmpVector(1) = Empty
            .Range(Cells(4, 1), Cells(4, 1).End(xlToRight)).AutoFilter Field:=20, Criteria1:=Array(vntTmpVector), Operator:=xlFilterValues
            .Range(Cells(5, 1), Cells(intNrow, intNcol)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
            .AutoFilter
        Next j
        If .FilterMode = True Then .ShowAllData
    End With
    La selection par critere via le vecteur vntTmpVector fonctionne, cepandant lorsque l'on passe à la ligne suivante vba ne supprime pas les lignes et j'ai le message derreur suivant:

    Impossible d'utiliser cette commande sur des selections qui se regroupent.

    Auriez vous une idée SVP?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Difficile de dire, tu ne montres pas comment sont renseignées les variables "intNrow" et "intNcol". Par contre, tu devrais mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range(.Cells(5, 1), .Cells(intNrow, intNcol)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    et de même sur les autres lignes.

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Quelle est ta version d'Excel ?

  4. #4
    Membre éclairé Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Par défaut
    Merci

    Bienvu le souci vient bien de intRow et intCol qui sont des variable public, je dois utiliser Nrow et Ncol pour cette partie du code, et là sa marche.

    Ma version est Office 2013.

    Avant de mettre résolu pourquoi j'ai du ajouter des point devant l'instruction cell, alors que precedemment sa marché sans?

    Merci

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Avant de mettre résolu pourquoi j'ai du ajouter des point devant l'instruction cell, alors que precedemment sa marché sans?
    Ca marche sans points parce que la feuille sur laquelle tu filtres est la feuille active. Sélectionne une autre feuille et ton code va planter, parce que ".Range" fait référence à la feuille "BDD" indiquée par :

    alors que "Cells..." sans point fait référence à la feuille active.

  6. #6
    Membre éclairé Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Par défaut
    Merci pour tous

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

Discussions similaires

  1. message d'erreur pour une ligne
    Par KOUKI SAMIA dans le forum MATLAB
    Réponses: 1
    Dernier message: 04/01/2011, 15h16
  2. Réponses: 2
    Dernier message: 29/05/2006, 12h43
  3. [MySQL] Message d'erreur pour atteindre ma base
    Par leloup84 dans le forum Installation
    Réponses: 7
    Dernier message: 04/02/2006, 01h51
  4. [TP] Message d'erreur au lancement de tpx sur xp
    Par palladium dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 27/03/2005, 00h53

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