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 une ligne selon critère


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Supprimer une ligne selon critère
    Bonjour à tous,

    Voilà, je souhaite mettre en place un Userform de suppression d'un adhérent.
    A partir d'un Combo, l'utilisateur choisira le numéro de l'adhérent.
    Les infos concernant l'adhérent apparaîtra dans différentes TextBox.

    Jusque là rien de très compliqué je vous l'accorde.

    Lorsque l'utilisateur cliquera sur un bouton "Supprimer" alors rechercher le n° de l'adhérent dans ces 3 feuilles (Adhé, Enf, Conj) et supprimer les lignes qui y correspondent. C'est là que cela se complique pour moi.

    Auriez-vous des exemples de ce type ou bien pouvez-vous me montrer la méthode pour finaliser ce travail ?

    Je vous en remercie par avance

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Regardes la commande find

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Voilà ce que j'ai fait. Mais à chaque fois il me dit que l'adhérent n'a pas été trouvé.
    Pouvez-vous m'apporter votre éclairage s'il vous plait ?

    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
    35
    36
    37
     
    Private Sub Cmb1_Click()
    Dim BDP As Worksheet
    Dim T As Range
    Dim AdheSup As String
     
        Set BDP = Worksheets("Adhé")
        AdheSup = Cb1.Value
     
    '// on. vérifie si l'adhérent existe
     
        Set T = BDP.Rows(1).Find(What:=AdheSup)
        If T Is Nothing Then
        MsgBox "L'adhérent n'a pas pu être supprimé. " & "Vérifiez que vous avez sélectionné un adhérent, " & "sinon consultez votre fichier."
            Exit Sub
        Else
     
        MsgBox "Voulez-vous confirmer la suppression de cet adhérent ?", vbYesNo, vbQuestion
     
    If vRep = vbYes Then
     
    ' // On supprime les lignes correspondant au titulaire dans chaque feuille
    Worksheets("Adhé").Rows(1).Find(What:=TituASup).EntireRow.Delete
    Worksheets("Enf").Rows(1).Find(What:=TituASup).EntireRow.Delete
    Worksheets("Conj").Rows(1).Find(What:=TituASup).EntireRow.Delete
    Else
    Unload Me
    End If
     
    ' // Retour à la feuille Accueil
    Worksheets("Accueil").Visible = True
    Worksheets("Accueil").Activate
     
    ' // On décharge le formulaire
    Unload Me
    End If
    End Sub

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    La syntaxe a l'air bonne, essai ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set T = BDP.Rows("1:1").Find(What:=MaRecherche, LookIn:=xlValues, LookAt:=xlPart)

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour à tous,

    J'ai essayé selon la proposition de aalex 38 mais ça ne marche pas.
    Je vous ai donc mis une partie du fichier en pièce jointe.
    Merci pour votre aide

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Au vue de ton fichier tu recherche dans la ligne 1 alors que tu devrais rechercher dans la colonne des numéros d'adhérents.

    J'ai modifié ainsi et le range T est trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set T = BDP.Columns("A:A").Find(What:=AdheSup, LookIn:=xlValues, LookAt:=xlPart)
    La suite est egalement a corriger car aussi ici on supprime la ligne 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Worksheets("Adhé").Rows(1).Find(What:=TituASup).EntireRow.Delete
    Worksheets("Enf").Rows(1).Find(What:=TituASup).EntireRow.Delete
    Worksheets("Conj").Rows(1).Find(What:=TituASup).EntireRow.Delete
    Edit: en fait on ne supprime sans doute rien du tout car rien n'est trouvé.
    Edit2 : et on ne passe pas dans ce code (msgbox)

    Autre remarque tu testes vrep, mais il n'y a pas de vrep, jepense que tu voulais faire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vREP = MsgBox("Voulez-vous confirmer la suppression de cet adhérent ?", vbYesNo, vbQuestion)
    Et pour l'adhérent pas besoin de le chercher à nouveau dans l'onglet Adhé, puisque tu l'a déja trouvé, donc ceci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Adhé").Rows(T.Row).EntireRow.Delete

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

Discussions similaires

  1. [XL-2002] Supprimer une ligne selon le contenu d'une cellule
    Par Alexis078 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/07/2014, 18h11
  2. [CR 10] Supprimer une ligne selon critères
    Par Atori dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 30/08/2012, 07h06
  3. [XL-2003] supprimer des lignes selon critères
    Par collinchris dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/01/2010, 13h51
  4. [XL-2003] VBA supprimer des ligne selon la date d'une cellule
    Par Scrabblouille dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/08/2009, 22h37
  5. [ListView/GridView]Afficher une ligne selon un critère de l'item
    Par anthyme dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 28/06/2008, 11h28

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