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'une ligne entière suite à une valeur [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut Suppression d'une ligne entière suite à une valeur
    Bonjour,

    J'aimerais supprimer une ligne en fonction de la valeur trouvée dans une plage.

    Je me suis fais une petite requete mais rien en se passe lorsque je l'éxécute.

    Pouvez vous m'aider à résoudre le pb et surtout m'expliquer où est l'erreur pour éviter de vous reposer le même question un de ces jours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    Dim i As Integer
     
    For i = 2 To 15
        If Cells(i, 2) = "VRAI" Then
        Cells(5, 1).EntireRow.Delete
        End If
    Next i
     
    End Sub
    Merci à vous

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir Will,

    je décortique chaque ligne et te demandes réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
    Dim i As Integer
     
    For i = 2 To 15
    'ci-dessous tu fais réference à une cellule b2, b3 b4....b15 où le contenu est "vrai"
    If Cells(i, 2) = "VRAI" Then
    'ci-dessous, tu demandes de supprimer la ligne 5, mais pas i (1 ou 2 ou 3...)
    'est-ce bien ce que tu veux ?
    Cells(5, 1).EntireRow.Delete
    End If
    Next i
     
    End Sub

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut
    Bonsoir et Merci casefayere pour ton aide,

    Donc oui je veux interroger une cellule pour savoir si la valeur est "vrai".

    Par contre je n'ai pas fais attention dsl mais ce n'est pas Cells(5,1)... que je voulais écrire mais Cells(i,1).EntireRow.Delete. Ceci ne change pas mon pb

    Voilà je pense t'avoir répondu,

    Merci encore
    Will

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bien,
    je vais recopier ton code et simuler une feuile identique, ajouter ton bouton de commande pour vérifier

    Patience...

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonsoir,

    de toutes manières :

    en supprimant ainsi, dans une boucle allant de 2 à 15, ===>> casse-pipe (imaginons en effet, par exemple, que tu supprimes la ligne 4 ===>> la 5 deviendra la 4, la 6 deviendra la 5, etc...)

    Ta boucle For ne peut valablement être envisagée qu'en allant de 15 à 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 15 to 2 step -1

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut
    Merci pour ta réponse ucfoutu

    Logique ce que tu dis, j'ai fais les changement mais ça ne change rien.

    Merci encore
    Will

  7. #7
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    bonsoir uc, re will

    si je change la valeur de "VRAI" pour "NON" au hasard, ça marche

    sauf si je me trompe le code n'aime pas la valeur VRAI ou FAUX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton1_Click()
    Dim i As Integer
     
    For i = 15 To 2 Step -1
    If Cells(i, 2) = "NON" Then
    Cells(i, 1).EntireRow.Delete
    Else
    End If
    Next i
     
    End Sub

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut
    Merci casefayere

    Ca fonctionne Mais j'aimerais bien savoir 2 choses :
    - Pourquoi la valeur Vrai n'est pas prise en compte ?
    - Est ce que c'est utile de mettre Else avant end If ?

    Merci encore pour tous,
    Will

  9. #9
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    else avant end if, c'est un oubli je devais aussi supprimer, le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    Dim i As Integer
     
    For i = 15 To 2 Step -1
    If Cells(i, 2) = "OUI" Then
    Rows(i).Delete
    End If
    Next i
     
    End Sub
    Quant au refus de la notion VRAI, ça doit être un mot reservé pour les codes, tout autant que faux,.....à vérifier

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut
    Merci beaucoup

    Je vais pouvoir dormir tranquille

    Bonne nuit aussi,
    will

  11. #11
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    re et coucou...

    quel est donc le format de tes cellules affichant VRAI ?

    Un petit truc à connaître sous VBA si le format est booléen.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1,1).Value = true ' ===>>> affichera "VRAI" dans la cellule
    Si c'est un booléen, donc, et que tu veux savoir si "VRAI" ou "FAUX" est affiché, il te faut tester avec True ou False (sans guillemets) et non avec "VRAI" ou "FAUX" ...

  12. #12
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    re uc,

    Pour moi, ton info sera utile, j'espère que Will verra ta réponse

    Bonne nuit et merci pour lui et...pour moi

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut


    Oui c'est vrai je souhaite vérifier une formule Excel "EXACT" qui me donnera le résultat Vrai ou faux.

    Merci pour tous à tous les deux à bientôt,
    Will

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

Discussions similaires

  1. déplacer une ligne entière vers une autre feuille
    Par isodoro dans le forum Excel
    Réponses: 15
    Dernier message: 06/07/2015, 13h59
  2. Remonter le contenu d'une ligne non vide à une ligne vide
    Par sossso112333 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/08/2014, 12h58
  3. Suppression après confirmation ligne entière d'une table
    Par igotzepower dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2012, 16h25
  4. Réponses: 3
    Dernier message: 29/03/2011, 20h38
  5. effacer une ligne entière dans une session
    Par keokaz dans le forum Langage
    Réponses: 11
    Dernier message: 23/12/2009, 23h51

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