XL 2021 Soucis d’effacement dans ma colonne AE

  • Initiateur de la discussion Initiateur de la discussion ARRU
  • Date de début Date de début
  • Mots-clés Mots-clés
    cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ARRU

XLDnaute Nouveau
Bonjour,
J'ai un petit soucis d'effacement d'une donnée sur mon tableau
Effectivement
Quand j'efface la donnée se trouvant dans la cellule AD2
La cellule AE2 ne se vide pas
et si je me positionne sur une cellule vide du tableau il m'affiche le numéro de la dernière ligne inscrite
Pourtant mon critère de recherche se fait sur ma colonne F (nom)
Donc si une cellule de la colonne F est vide la cellule AE devrait rester vide après effacement mais se n'est pas le cas.
je ne trouve pas le PB.
Merci
 

Pièces jointes

Solution
Hello

c'est ma faute, j'ai oublié de regarder ca

pour expliquer l'erreur:
1) tu vois un module de classe "cTextBox" qui permet de controler les saisies dans les différents textbox du formulaire
pour définir quel type de saisie est demandé, je mets une valeur spécifique dans le TAG du control (voir propriétés)
Tag DATE pour les deux textbox Date de naissance et Date d'adhésion
essaie de taper le 30/02/2000 ==> il va effacer la date, puisqu'elle n'est pas valide

tag CP pour le Code Postal
tag Tel pour les téléphones fixe et mobile (tu vois qu'au fur et à mesure que tu tapes, le numéro de tel, il met un espace tous les deux chiffres, et tu ne peux en saisir que 10
etc etc (pour la liste complete, va voir dans...
Bonjour

la cellule AE2 ne se vide pas parce qu'aucun code ne l'efface.., donc, c'est normal..

mais maintenant.. je vois pas à quoi servent les cellules AD2 et AE2 ? ==> afficher le nom selectionné.. ok.. mais pour en faire quoi?

ensuite, ta plage "TBl_02" mériterait d'etre transormée en Table Structurée==> exit les lignes vides inutiles
 
Bonjour

la cellule AE2 ne se vide pas parce qu'aucun code ne l'efface.., donc, c'est normal..

mais maintenant.. je vois pas à quoi servent les cellules AD2 et AE2 ? ==> afficher le nom selectionné.. ok.. mais pour en faire quoi?

ensuite, ta plage "TBl_02" mériterait d'etre transormée en Table Structurée==> exit les lignes vides inutiles
Concernant les cellules AD2 et AE2 cela me permet de trouver la ligne de l'adhérent (plus de 300 adhérents) rapidement car je c'est pas comment pointer directement sur l'adhérent recherché
Pour le tableau structuré pas de soucis
 
Concernant les cellules AD2 et AE2 cela me permet de trouver la ligne de l'adhérent (plus de 300 adhérents) rapidement car je c'est pas comment pointer directement sur l'adhérent recherché
Pour le tableau structuré pas de soucis

ok,
est ce que tu peux expliquer ton application.. à quoi elle sert, comment tu l'utilises..

c'est juste une base de données de noms avec infos?
C'est une base de données qui gère des anciens combattants et cela me permet d'ajouter, supprimer, modifier les renseignements de tous les adhérents et de suivre toutes leurs données
 
regarde la PJ, j'ai repris la quasi intégralité de ton fichier

1) transformation des tableaux en Tables Structurées avec des noms explicit 't_Catégorie", 't_BDD"....
2) j'ai renommé tous les controls du formulaire==> Tbx_Prénom est plus parlant que textbox5
3) j'ai remplacé le textbox du nom par un Combobox==> il suffit de taper dedans pour que la liste des noms correspondants se mette à jour
==> dès qu'un nom est selectionné==> le formulaire est rempli avec les infos
==> si tu tapes un nouveau nom, le formulaire reste vide
4) je n'ai gardé que 3 boutons sur le formulaire
quand tu cliques sur enregistrer
==> s'il s'agit d'un nom existant, il te propose de modifier directement la ligne
==> s'il s'agit d'un nouveau nom, il ajoute une ligne dans la BDD
quand tu cliques sur supprimer: la ligne est supprimée de la BDD (pas de demande de confirmation==> mais on peut facilement en ajouter une

le bouton "Réinitialiser", vide le formulaire
 

Pièces jointes

regarde la PJ, j'ai repris la quasi intégralité de ton fichier

1) transformation des tableaux en Tables Structurées avec des noms explicit 't_Catégorie", 't_BDD"....
2) j'ai renommé tous les controls du formulaire==> Tbx_Prénom est plus parlant que textbox5
3) j'ai remplacé le textbox du nom par un Combobox==> il suffit de taper dedans pour que la liste des noms correspondants se mette à jour
==> dès qu'un nom est selectionné==> le formulaire est rempli avec les infos
==> si tu tapes un nouveau nom, le formulaire reste vide
4) je n'ai gardé que 3 boutons sur le formulaire
quand tu cliques sur enregistrer
==> s'il s'agit d'un nom existant, il te propose de modifier directement la ligne
==> s'il s'agit d'un nouveau nom, il ajoute une ligne dans la BDD
quand tu cliques sur supprimer: la ligne est supprimée de la BDD (pas de demande de confirmation==> mais on peut facilement en ajouter une

le bouton "Réinitialiser", vide le formulaire
 
Je te remercie pour ce travail plus claire. Désolé je suis novice
En revanche j'ai un soucis avec les noms identiques
je ne peux pas ajouter même ci le prénom est différent
C'est vrai une demande de confirmation serait judicieux
 
Bonsoir,
Vous devez modifier la procédure enregistrer pour avoir ce résultat.
VB:
Private Sub Cmb_Enregsitrer_Click()              'Modifier
    Dim Lig As Long
    If Me.Cbx_Nom.ListIndex = -1 And Me.Cbx_Nom = vbNullString Then Exit Sub
    With Sheets("Base de données").ListObjects("t_BDD")
        Set trouve = .ListColumns("Nom").Range.Find(Me.Cbx_Nom, lookat:=xlWhole)
        If Not trouve Is Nothing Then            'le nom existe déjà ==> si on modifie
            If MsgBox("Ce nom existe déjà, souhaitez vous le modifier?", vbYesNo) = vbNo Then
                Lig = .ListRows.Add.Index
                .DataBodyRange(Lig, 1) = Application.WorksheetFunction.Max(.ListColumns(1).Range) + 1
            Else
                Lig = trouve.Row - .Range.Row
            End If
        Else                                     'le nom n'existe pas.. il s'agit d'une nouvelle entrée
            Lig = .ListRows.Add.Index
            .DataBodyRange(Lig, 1) = Application.WorksheetFunction.Max(.ListColumns(1).Range) + 1
        End If
        SaveForm (Lig)
    End With
    ResetAllControls True
    PopulateCombobox
End Sub
Pour ma part je ferais le contrôle sur la méthode AfterUpdate du contrôle Nom mais bon...

Un peu de lecture : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire. CRUD
 
Dernière édition:
Bonsoir,
Vous devez modifier la procédure enregistrer pour avoir ce résultat.
VB:
Private Sub Cmb_Enregsitrer_Click()              'Modifier
    Dim Lig As Long
    If Me.Cbx_Nom.ListIndex = -1 And Me.Cbx_Nom = vbNullString Then Exit Sub
    With Sheets("Base de données").ListObjects("t_BDD")
        Set trouve = .ListColumns("Nom").Range.Find(Me.Cbx_Nom, lookat:=xlWhole)
        If Not trouve Is Nothing Then            'le nom existe déjà ==> si on modifie
            If MsgBox("Ce nom existe déjà, souhaitez vous le modifier?", vbYesNo) = vbNo Then
                Lig = .ListRows.Add.Index
                .DataBodyRange(Lig, 1) = Application.WorksheetFunction.Max(.ListColumns(1).Range) + 1
            Else
                Lig = trouve.Row - .Range.Row
            End If
        Else                                     'le nom n'existe pas.. il s'agit d'une nouvelle entrée
            Lig = .ListRows.Add.Index
            .DataBodyRange(Lig, 1) = Application.WorksheetFunction.Max(.ListColumns(1).Range) + 1
        End If
        SaveForm (Lig)
    End With
    ResetAllControls True
    PopulateCombobox
End Sub
Pour ma part je ferais le contrôle sur la méthode AfterUpdate du contrôle Nom mais bon...

Un peu de lecture : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire. CRUD
Je n'arrive toujours pas a rajouter un nom identique avec un autre prénom
Es-que quelqu’un m'aider
Merci
 
Hello

regarde la PJ, j'ai modifié le code pour vérifier l'existence du "Nom - prénom"
==> tu peux donc normalement avoir plusieurs membre d'une meme famille

et du coup.. cette solution est une solution dans laquelle on déplace le problème...
si tu as deux homonymes... on aura à nouveau le meme problème..
il faudrait donc vérifier aussi l'adresse? ou un autre élément? pour être sur d'avoir deux personnes différentes..
 

Pièces jointes

Dernière édition:
Hello

regarde la PJ, j'ai modifié le code pour vérifier l'existence du "Nom - prénom"
==> tu peux donc normalement avoir plusieurs membre d'une meme famille

et du coup.. cette solution est une solution dans laquelle on déplace le problème...
si tu as deux homonymes... on aura à nouveau le meme problème..
il faudrait donc vérifier aussi l'adresse? ou un autre élément? pour être sur d'avoir deux personnes différentes..
 
Bonjour

moi je n'ai pas d'erreur: as tu changé le nom de la feuille? ou changé le nom de la colonne "Nom" ?

pour les homonymes.. deux personnes avec meme nom et meme prénom vivant sous le même toit.. ca parait peu probable non?
on peut par contre juste vérifier la date de naissance en plus du nom et prénom..
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
508
Réponses
5
Affichages
520
Compte Supprimé 979
C
Retour