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 d'un ligne selon un paramètre VRAI/FAUX


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Suppression d'un ligne selon un paramètre VRAI/FAUX
    bonjour à tous,
    voila je vous soummet un petit problème que j'ai du mal à résoudre.

    Je cherche à créer une macro qui en fonction du paramètre "VRAI" ou "FAUX" (texte brut) me permet du supprimer toute la ligne ou elle trouve le paramètre "VRAI".

    Mon classeur est comme suit (; = changement de cellule) :
    AAA; BBB; CCC; DDD; VRAI
    EEE; FFF; GGG; HHH; FAUX
    III; JJJ; KKK; LLL; VRAI
    MMM; NNN; OOO; PPP; VRAI
    ici 3 lignes devraient être supprimées. la colone ou se trouve le paramètre est la 23.

    J'ai tenté d'écrire un bout de code mais ile ne fonctionne pas.
    Merci a ceux qui se pencheront sur le problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub suppVRAI()
     
    Dim i As Integer
    i = 0
    For i = 1 To 10000
     
    If ActiveSheet.Cells(i, 23).Value = "VRAI" Then
    Rows(i).Delete
    End If
    Next i
     
    End Sub

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 75
    Points : 90
    Points
    90
    Par défaut
    Je pense que le problème vient du fait qu'Excel comprend la valeur "VRAI" comme un booléen.
    Il y a donc deux solutions :
    • Ne pas lire la valeur mais le texte
    • Ne pas tester la valeur avec "VRAI" mais avec "Vrai" (ou la traiter comme un booléen)


    Je te conseille la première méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub suppVRAI()
        Dim i As Integer
        With ActiveSheet
           For i = 1 To 10000
               If .Cells(i, 23).Text = "VRAI" Then
                   .Rows(i).Delete
               End If
           Next i
        End With
    End Sub

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    attention aux boucles avec des supressions de lignes
    Si tu boucles dans le sens traditionnel, tu vas passer des lignes
    imagine que la ligne 2 est a suprimer,
    i = 1, ok, on garde
    i =2, ko, on efface, et du coup, la ligne 3 devient la nouvelle ligne 2. La boucle arrive au bout, on fait next i, et paf on arrive a la nouvelle ligne 3, anciennement ligne 4 et hop, on a pas vérifié la ligne 3

    pour éviter ca, ce qui est conseillé, c'est de boucler dans l'autre sens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 10000 To 1 step -1

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    MErci à vous pour ces bout de code qui m'ont bien aidé.
    De plus il est vrai qu'il faille commencer par la fin.

    JE rajoute aussi a ceux qui voudrait faire la même chose que moi, qu'il peuvent faire la même macro en utilisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(i, 23).Value = -1 Then
    Cela permet de traiter l'info comme un VRAI / FAUX booléen. enfin je l'ai compris comme sa et sa marche.
    Cdt

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

Discussions similaires

  1. Mettre en couleur un ligne de ma table selon un paramètre
    Par cheikhoufia dans le forum WinDev
    Réponses: 8
    Dernier message: 12/09/2012, 15h37
  2. [Débutant] Suppression de lignes selon condition
    Par Bubulle31 dans le forum MATLAB
    Réponses: 3
    Dernier message: 01/08/2011, 16h58
  3. [XL-2003] Suppression lignes selon colonne de 2 sheets
    Par Vadorblanc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/02/2011, 16h54
  4. [XL-2003] Suppression lignes selon 1 condition
    Par Vadorblanc dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 28/01/2011, 21h18
  5. Suppression dans una table selon un paramètre
    Par dessinateurttuyen dans le forum PL/SQL
    Réponses: 6
    Dernier message: 17/05/2010, 15h56

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