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 :

Supprimer des lignes qui commencent par une donnée précise à l'aide d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Supprimer des lignes qui commencent par une donnée précise à l'aide d'une macro
    Bonjour,

    je veux faire une macro qui me permettra de supprimer des lignes sous deux conditions:
    condition 1 : les données de la colonne C qui commencent par 401
    condition 2 : les données de la colonne F qui sont différente de F et R
    Pourriez vous m'aider SPV ?
    Mercii d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 112
    Points : 9 922
    Points
    9 922
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il manque quelques éléments pour bien comprendre
    en l'état, je subodore que les données commencent en ligne 2 car la ligne 1 contient des en-têtes et que:

    1) on cherche la première ligne dont la cellule de la colonne C commence par "401" (une chiffre ou une chaine de caractère ? dans une formule ou dans une valeur ? J'opte pour la chaine dans une valeur de cellule)
    2) de cette ligne là incluse, et pour toutes les lignes du dessous, on supprime chaque ligne où la cellule de la colonne F est différente de R et de F à la fois


    La fonction FIND permet de trouver la cellule du premier point

    Le filtre automatique placé en colonne F, utilisant les 2 Criteria en association va masquer les lignes contenant R et F
    On part de la cellule du premier point, on sélectionne tout ce qui est en dessous et qui est "visible" sur la feuille, pour en supprimer les lignes intégrales

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub toto()
    Dim Cell As Range
        With Feuil1.Cells(1, 1).CurrentRegion
            Set Cell = .Columns(3).Find("401*", , , xlPart)
            If Not Cell Is Nothing Then
                .AutoFilter: .AutoFilter 6, "<>R", xlAnd, "<>F"
                If .Offset(1, 0).SpecialCells(xlCellTypeVisible).Rows.Count > 1 Then
                    .Offset(Cell.Row - 1, 0).Resize(.Rows.Count - Cell.Row + 1, 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
                End If
                .AutoFilter
            End If
        End With
    End Sub

    Bonne adaptation, c'est très brut

    EDIT : une petite sécurité si aucun résultat lors de la phase 2

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour
    merci pour votre réponse
    mais je crois que j'ai mal exprimé ce que je veux
    en fait la macro doit supprimer les lignes sur lesquelles les cellules de la colonnes C commmencent par "401" et les cellules de colonnes F ou leurs valeur est différene de R et F

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 112
    Points : 9 922
    Points
    9 922
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    oui pour le filtre avancé, clairement plus rapide :

    1) on exporte le resultat souhaité
    2) on supprime l'ancienne feuille

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2014, 11h52
  2. affichage des enregistrements qui commencent par une lettre donnée
    Par kroma23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/10/2011, 09h08
  3. Réponses: 1
    Dernier message: 30/09/2010, 10h34
  4. Afficher des noms qui commencent par une lettre donnée
    Par kroma23 dans le forum Bases de données
    Réponses: 1
    Dernier message: 22/11/2008, 16h48
  5. sed: remplacer une ligne qui commence par Version
    Par lili2704 dans le forum Linux
    Réponses: 8
    Dernier message: 21/07/2008, 14h26

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