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 :

Suppression de la 1ère ligne par autoFilter [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Stagiaire vba
    Inscrit en
    Mai 2020
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire vba

    Informations forums :
    Inscription : Mai 2020
    Messages : 27
    Par défaut Suppression de la 1ère ligne par autoFilter
    Bonjour,

    J'utilise un autoFilter sur un tableau pour supprimer certaines lignes. Le problème est que quoiqu'il arrive, que le critère soit bon ou non, la première ligne de mon tableau est supprimée.

    y'a-t-il un moyen de ne pas supprimer la première ligne si le critère ne correspond pas?

    Voilà un exemple de ce que j'utilise et son résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Range("A1:A8").AutoFilter Field:=1, Criteria1:="F"
        Rows("1:8").Delete

    Nom : Sans titre.png
Affichages : 125
Taille : 1,5 Ko

    Merci d'avance

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    à tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub filtreetsupprimer()
    Dim F1 As Worksheet
    Set F1 = Sheets("Feuil1")
    Dim I As Long
     Application.ScreenUpdating = False
     With F1
     .Activate
    I = .Cells(Rows.Count, 1).End(xlUp).Row
     .Range("A1:A" & I).AutoFilter Field:=1, Criteria1:="F"
     .Range("A2:A" & I).SpecialCells(xlCellTypeVisible).EntireRow.Delete
     .ShowAllData
    End With
     Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Stagiaire vba
    Inscrit en
    Mai 2020
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire vba

    Informations forums :
    Inscription : Mai 2020
    Messages : 27
    Par défaut
    Bonjour,

    Yes merci ça fonctionne parfaitement

    Bonne journée à toi

  4. #4
    Membre averti
    Homme Profil pro
    Stagiaire vba
    Inscrit en
    Mai 2020
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire vba

    Informations forums :
    Inscription : Mai 2020
    Messages : 27
    Par défaut
    Rebonjour,


    Rectification, ça ne fonctionne pas. Lorsque ma première ligne correspond au critère, elle n'est pas supprimée, et si aucune ligne ne correspond j'ai une erreur notant:
    Erreur 1004, Pas de cellules correspondantes.
    J'avoue ne pas comprendre d'où vient cette erreur.

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    donner un exemple svp
    pour moi la cellule A1 est dédiée pour le titre de la colonne non??

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    A TESTER
    NB : un autodidacte VBA

    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
    16
    17
    Sub filtreetsupprimer()
    Dim F1 As Worksheet
    Set F1 = Sheets("Feuil1")
    Dim I As Long
     Application.ScreenUpdating = False
     
     With F1
     
     .Activate
    I = .Cells(Rows.Count, 1).End(xlUp).Row
     .Range("A1:A" & I).AutoFilter Field:=1, Criteria1:="F"
     On Error Resume Next
     .Range("A2:A" & I).SpecialCells(xlCellTypeVisible).EntireRow.Delete
     If .FilterMode = True Then .ShowAllData
    End With
     Application.ScreenUpdating = True
    End Sub

  7. #7
    Membre averti
    Homme Profil pro
    Stagiaire vba
    Inscrit en
    Mai 2020
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire vba

    Informations forums :
    Inscription : Mai 2020
    Messages : 27
    Par défaut
    Oui effectivement je viens juste de comprendre que la cellule où est placé le filtre n'est pas filtré, excuse moi j'apprend encore.

    Quand à l'autre soucis, l'erreur quand aucune cellule ne match, je crois que le problème viens du SpecialCells(xlCellTypeVisible). Si aucune cellule visible ne contient de valeur c'est là que j'ai mon erreur.
    Il me faudrait juste pouvoir tester si des valeurs sont visibles après le filtre.

    J'ai tenté un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not ActiveSheet.Range("A2:A" & i).SpecialCells(xlCellTypeVisible) Is Nothing Then
    Mais j'obtient la même erreur

    Actuellement mon code ressemble à ça après les changements et le if qui ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub testFiltre()
        Dim i As Long
        i = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).row
     
        ActiveSheet.Range("A1:A" & i).AutoFilter Field:=1, Criteria1:="F"
        'If Not ActiveSheet.Range("A2:A" & i).SpecialCells(xlCellTypeVisible) Is Nothing Then
            ActiveSheet.Range("A2:A" & i).SpecialCells(xlCellTypeVisible).EntireRow.Delete
        'End If
        ActiveSheet.ShowAllData
     
    End Sub

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

Discussions similaires

  1. [XL-2002] Comment empêcher la suppression de la 1ère ligne d'une feuille Excel?
    Par dariyoosh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/07/2010, 11h02
  2. Réponses: 4
    Dernier message: 21/02/2008, 22h35
  3. suppression de ligne par macro
    Par stefano dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/02/2008, 14h41
  4. [access/vb.net] Suppression ligne par rapport date
    Par t1marlartiste dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/07/2007, 20h01
  5. [VBA-E] Autofilter : lecture ligne par ligne
    Par canorra dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/05/2006, 15h42

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