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 VBA suppression ligne sous conditions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    technicien automobile
    Inscrit en
    Septembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : technicien automobile
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2018
    Messages : 4
    Par défaut Macro VBA suppression ligne sous conditions
    Bonjour à tous,

    J'ai un fichier ou j'ai deja réalisé pas mal de choses.

    mais je bute sur un élément.
    J'aimerai supprimer des lignes.

    Sur la colonne F à partir de ligne 7, je voudrais supprimer chaque ligne dont le contenu le la cellule dans la colonne F n'est pas strictement égal à 6 caractères alphanumériques

    Par avance merci de votre aide

  2. #2
    Expert confirmé
    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 : 67
    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
    Billets dans le blog
    7
    Par défaut
    Bonjour et Bienvenu sur le Forum,

    Ton code STP.

    Il serait plus constructif que tu recherches, par tous les moyens, le code adéquat à ta demande.
    Tu pourras ensuite solliciter le Forum.

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    C'est typiquement le type de demande qui a été traité plusieurs fois: si votre condition de suppression est définie (ce qui semble votre cas), alors passez par un filtrage pour ne laisser à l'écran que les lignes à supprimer.
    Après, vous passez par un Range.SpecialCells(xlCellTypeVisible) pour la suppression.

    Vous trouverez j'en suis sur pas mal d'exemples plus étoffés sur le forum

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        TablO.Range.AutoFilter Field:=FiltFiledI, Criteria1:=FiltCriterV
        Set FilterTabl = TablO.DataBodyRange.SpecialCells(xlCellTypeVisible)

  4. #4
    Membre à l'essai
    Homme Profil pro
    technicien automobile
    Inscrit en
    Septembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : technicien automobile
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2018
    Messages : 4
    Par défaut
    Bonjour merci pour vos conseils voici le code réalisé avec l'aide d'exemple mais rien ne ce passe.

    a noter que les caractères alphanumériques sont en colonne E et pas F
    Par 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
        Option Explicit
    Dim FL1 As Worksheet, NoCol As Integer
    Dim NoLig As Long, Var As Variant
     
    Sub VerifierNombres()
     
    On Error GoTo Erreur
    Dim MonNombre As Variant
     
     
    '
    If IsNumeric(Var) = True Then
     
          If Len(Var) = 6 Then
            Rows(NoLig & ":" & NoLig).Delete
            End If
    Else
        'code si expression n'est pas numérique
     
    End If
     
    Exit Sub
    Erreur:
    MsgBox "Une erreur s'est produite..."
    End Sub
    Sub For_X_to_Next_Ligne()
    Set FL1 = Worksheets("DmResultat")
        NoCol = 5 'lecture de la colonne E
        For NoLig = 7 To Split(FL1.UsedRange.Address, "$")(4)
            Var = FL1.Cells(NoLig, NoCol)
             VerifierNombres
        Next
        Set FL1 = Nothing
    End Sub

  5. #5
    Expert éminent 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
    Par défaut
    Citation Envoyé par domcoool92 Voir le message
    Sur la colonne F à partir de ligne 7, je voudrais supprimer chaque ligne dont le contenu le la cellule dans la colonne F n'est pas strictement égal à 6 caractères alphanumériques
    Faire une boucle For To sur l'ensemble des numéros de ligne en allant de la dernière à la première (donc Step -1 sur la boucle).
    https://docs.microsoft.com/fr-fr/off...next-statement
    Faire un test sur le nombre de caractères de la cellule en cours avec la fonction Len().
    https://docs.microsoft.com/fr-fr/off...p/len-function
    Si elle n'est pas conforme, faire un Delete sur le Row correspondant au numéro de ligne.
    https://msdn.microsoft.com/fr-fr/lib.../ff834641.aspx

    Bonjour merci pour vos conseils voici le code réalisé avec l'aide d'exemple mais rien ne ce passe.
    Commence par supprimer le On Error qui t'empêche de voir les problème.
    Ensuite, demande-toi ce que représente Var dans ton code et comment le code peut-il passer d'une ligne à l'autre.

Discussions similaires

  1. [XL-2010] Suppression lignes sous conditions
    Par Tricks87 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/02/2018, 14h18
  2. [XL-2013] Suppression ligne sous condition particulière
    Par Seozz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/05/2016, 10h59
  3. Code VBA "Suppression de ligne sous condition"
    Par BD_NXO dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/04/2014, 13h33
  4. Problème VBA : suppression de lignes sous conditions multiples
    Par mia73 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/10/2012, 19h42
  5. macro vba identifier cellule sous condition
    Par yanacrux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/03/2009, 14h00

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