Supprimer une ligne dans une ListView ?

- Le point 5 concernait les doublons que vous avez réglé hier ou je me trompe

- Les points 11 et 12 ne m'étaient pas connus dans le fichier

Pour le point 12: il me semble que vous auriez pu ajouter la ligne dans la sub Initliste2 mais à vérifier. Cela vu que juste avant vous appelez cette sub depuis l'usf non-membres.
Dans ce cas, vous pourriez enlever cette même ligne de la sub Initialize de l'usf Inscription car cela fait double emploi

Je sais, dans ma feuille "A_Revoir", je supprime les points faits, et ajoute d'autres points au fur et a mesure que je découvre le problème.

Pour le point 5, je n'ai fait que la transformation des txt en combo, Je les ai pas encore rendu dépendantes l'une d l'autre, ni autorisé l'extension des listes.

Je vais tester votre suggestion pour le point 12...

Le point 11 et également régler...

Ce code juste avant "Call M_2AfficherFormulaires.InitListe2" dans la procédure "Private Sub CommandButton1_Click()" du UserForm "usf_NonMembre".

        If TextBox1.Value = "" Then
            MsgBox ("Vous devez impérativement entrer le NOM !")
            Exit Sub
        End If
        If TextBox2.Value = "" Then
            MsgBox ("Vous devez impérativement entrer le Prénom !")
            Exit Sub
        End If
        If OptionButton1.Value = False And OptionButton2.Value = False Then
            MsgBox ("Vous devez impérativement sélectionner un sexe !")
            Exit Sub
        End If
        If CheckBox1.Value = False And CheckBox2.Value = False And CheckBox2.Value = False Then
            MsgBox ("Vous devez impérativement sélectionner une ou plususiers postes !")
            Exit Sub
        End If

donc à supprimer de la liste.

Ce code juste avant "Call M_2AfficherFormulaires.InitListe2" dans la procédure "Private Sub CommandButton1_Click()" du UserForm "usf_NonMembre".

Pour moi cela doit rester. Cela concerne l'usf gestion et pas NonMembres

Je n'ai pas dit de supprimer "Call M_2AfficherFormulaires.InitListe2", mais de placer le code donné dans mon post avant cette ligne...

Je pars faire les courses, je vous retrouve à mon retour.

merci

Je n'ai pas dit de supprimer "Call M_2AfficherFormulaires.InitListe2",

Je n'ai pas parlé de cela mais l'instruction dont vous parlez ici https://forum.excel-pratique.com/s/goto/1056975 n'a pas besoin d'être placée dans l'usf non membres. Vous pouvez la mettre dans le code Initlist2 juste avant le END SUB
Du coup vous pouvez aussi l'enlever de la sub Initialize de l'usf Inscription et qui se trouve juste avant Call InitListe1

Ok j'ai compris, j'en ai profité pour regrouper les calculs du nombre de parties possible :

With usf_Inscription

.lbl_NbInscrits = Application.WorksheetFunction.CountA(Sh2.Range("$A:$A")) - 1

.lbl_PartiesTat = .lbl_NbInscrits

.lbl_PartieDoublettes = .lbl_NbInscrits / 2

.lbl_PartiesTriplettes = .lbl_NbInscrits / 3

End With

Ce qui a eu pour effet de me réactualiser les calculs même quand j'inscrit un joueur non membre, ce qui n'était pas le cas avant.

Merci Dan...

Je suis en galère pour compter le nombre de joueurs non membres inscrits en "Listview2"...

J'essaie de compter les items en rouge, mais je n'y arrive pas...

Voici le code je tente de faire passer :

        Dim x%
        Dim Lig As ListItem

        x = 0
        For Each Lig In .ListItems.Count

        '        For i = 1 To .ListItems.Count

        If .ListItems(i).ListSubItems(1).ForeColor = &HFF& Then
        x = x + 1
        End If
        Next
        '    lbl_NonMembres = x
        MsgBox x

ça bute sur la ligne :

      For Each Lig In .ListItems.Count

ça me dit "Membre ou méthode de donnée introuvable".

sauriez vous me dire ce que je ne comprend pas ?

Merci infiniment.

Bonsoir,

Je viens de terminer le point7 de la feuille "A_revoir" :

   ' Si le point est mis juste aprés l'arobase
    If PosDernierPoint = PosArobase + 1 Then
        sErreur = "Le point nepeut pas etre immédiatement aprés l'@"
        Test_Validite_Email = False
        Exit Function
    End If

   ' Si la partie aprés le dernier point reste vide
    If PosDernierPoint = VBA.Len(Kel_Mail) Then
      sErreur = "La partie aprés le dernier point ne doit pas rester vide."
      Test_Validite_Email = False
      Exit Function
    End If

que j'ai positionné juste aprés :

   ' Si la position du dernier point est < a la position de l'arobase,  L'adresse mail n'est pas valide
   If PosDernierPoint < PosArobase Then
      sErreur = "La partie Host (a droite de l'arobase) doit contenir au moins un point"
      Test_Validite_Email = False
      Exit Function
   End If

Et je me posait la question de savoir si une adresse mail pouvait commencer par un chiffre ?

je n'en ai jamais rencontré, et le web n'est pas bavard à ce sujet.

si vous avez la réponse...

Concernant votre post d'hier (https://forum.excel-pratique.com/s/goto/1057207), utilisez cette instruction quand vous fermez l'usf Non Membres

With usf_Inscription
    .lblxxx = WorksheetFunction.CountIf(Sh2.Range("A:A"), "=NM*")
End With

Avec lblxxx comme nom de label reprenant la nombre de participants non membres

Bonjour Dan,

Merci, ça le fait aussi dans la "Sub InitListe2()", regroupé avec les autres pour une actualisation directe...

Je vais être absent pour le reste de la journée...

A demain...

1. Dans ma formule, j'ai mis deux ** mais il n'en faut qu'un seul

2. Et je me posait la question de savoir si une adresse mail pouvait commencer par un chiffre ?

je n'en ai jamais rencontré, et le web n'est pas bavard à ce sujet.

Je ne pense pas avoir rencontré cela depuis que j'ai une connexion Internet. Mais cela pourrait être possible je pense.

Bonjour Dan,

Je ne vois qu'une seule * dans votre code:

With usf_Inscription
    .lblxxx = WorksheetFunction.CountIf(Sh2.Range("A:A"), "=NM*")
End With

Je travaille depuis ce matin à relier les 2 comboBox, ça marche quand je sélectionne une ville, (Exemple: "MARSEILLE" je n'affiche que les arrondissements dans la "cbo_CP", à l'inverse, si je sélectionne "13009" dans la "cbo_CP", ma "cbo_Ville" est vide...

J'ai beau triturer le cde dans tous les sens, elle reste désespérément vide...

Voici le code que j'ai récupéré sur le net:

' ====================================================================
' =                          CONFIGURATION DE COMBOBOX  "cbo_Ville"                                 =
' ====================================================================
' Permet d'afficher les codes postaux en fonction de la ville sélectionnée
' -----------------------------------------------------------------------------------------------------------------------
Private Sub cbo_Ville_Change()

        cbo_Ville.Value = UCase(cbo_Ville.Value)

    Dim List_Ville As String
    Dim i As Integer
    Dim List_CP As String

    ' vider la ComboBox
    ' Vérifier qu'on a sélectionné une "Ville"
    If cbo_Ville.Value <> "" Then
        cbo_CP.Clear
'    Worksheets("Data").Select
    Dl = Worksheets("Data").Cells(Rows.Count, 1).End(xlUp).Row
    '    List_Ville = "

        For i = 2 To Dl
            '  Vérifier la "Ville".
            If Worksheets("Data").Cells(i, 1) = cbo_Ville.Value Then
            ' Ajouter le "CP"
            cbo_CP.AddItem "" & Worksheets("Data").Cells(i, 2)
            End If
        Next i
    End If
'
End Sub

' ====================================================================
' =                          CONFIGURATION DE COMBOBOX  "cbo_CP"                                 =
' ====================================================================
' Permet d'afficher  les villes en fonction du code postal  sélectionné
' -----------------------------------------------------------------------------------------------------------------------
Private Sub cbo_CP_Change()

    Dim List_CP As String
    Dim i As Integer
    Dim List_Ville As String

    ' vider la ComboBox

    If cbo_CP.Value <> "" Then
          cbo_Ville.Clear

'    Worksheets("Data").Select
    Dl = Worksheets("Data").Cells(Rows.Count, 2).End(xlUp).Row
        For i = 2 To Dl
'        '  Vérifier le "CP".
            If Worksheets("Data").Cells(i, 2) = cbo_CP.Value Then
'            ' Ajouter la "Ville"
            cbo_Ville.AddItem "" & Worksheets("Data").Cells(i, 1)
            End If
        Next
    End If
End Sub

Pouvez vous me dire ce que j'ai raté...

Merci.

Bonjour,

Je ne vois qu'une seule * dans votre code:

Oui parce que j'ai édité le post

Je travaille depuis ce matin à relier les 2 comboBox, ça marche quand je sélectionne une ville, (Exemple: "MARSEILLE" je n'affiche que les arrondissements dans la "cbo_CP", à l'inverse, si je sélectionne "13009" dans la "cbo_CP", ma "cbo_Ville" est vide...

J'ai beau triturer le cde dans tous les sens, elle reste désespérément vide..

Il me semble que cela n'a pas de sens de faire cela.
Ou alors il ne faut pas charger les deux combobox à l'ouverture.
Le Clear supprime toute la liste dans la combo.
Si vous entrez un CP vous n'aurez qu'une valeur sur la combo ville. Alors pourquoi utiliser une combo pour les villes dans ce cas et ce, d'autant que lors d'une inscription la personne vous mentionnera sa ville plutôt que le CP. Une fois la ville connue, il vous donnera le CP si plusieurs que vous pourrez choisir, non ?

Bonjour Dan,

Vous avez raison...

Je m'évertuais à trouvez une solution là il suffisait de forcer le choix de la ville avant celui du CP pour ne pas se retrouver avec une "cbo_Ville" vide.

C'est chose faite :

Private Sub cbo_CP_Click()
    If cbo_Ville = "" Then
        MsgBox "veuillez sélectionner la ville en premier"
        cbo_CP.Clear
    End If
    Exit Sub
End Sub

Merci.

Non, vous devez pas faire un Clear sans quoi vous effacez la liste dans la combobox CP.

En fait vous vous y prenez mal je pense. Votre combobox CP doit être chargée en fonction du choix de la combobox Ville. Donc ce code ne doit pas exister dans votre USF.

Bonjour Dan,

J'ai bien compris ce que vous vouliez dire, j'ai transformé comme ceci:

Private Sub cbo_CP_Click()
    If cbo_Ville = "" Then
        MsgBox "veuillez sélectionner la ville en premier"
'        cbo_CP.Clear
    Exit Sub
    End If
End Sub

Le soucis, c'est que le message s'affiche bien quand j'enregistre un nouveau membre, mais ne s'affiche plus si j'en enregistre un second dans la foulée, sans refermer et rouvrir le UserForm...

Je cherche depuis ce matin, mais n'ai pas trouvé la solution...

avez vous une idée ?

Supprimez ce code qui ne sert pas.

Votre combo cp ne doit rien contenir si vous n'avez pas de ville. La combo CP ne doit se charger ou mieux n'être utilisable que lorsque vous avez choisi une ville.

Le plus simple est de ne rendre accessible la combo CP que lorsque vous avez complèté la combo Ville. L'instnruction Enable vous permet de controler cela.

OK, J'ai mis "cbo_CP.Enabled=False" à la fin de la procédure d'enregistrement, et "cbo_CP.Enabled=True" juste après la ligne "If cbo_Ville.Value <> "" Then"

de la procédure "Private Sub cbo_Ville_Change()".

Ca fonctionne bien, la "cbo_CP" est bien inactive au lancement du UserForm, et elle se désactive bien à la fin de l'enregistrement.

Merci, je vais pouvoir continuer à peaufiner les réglages.

Ok. Au final, Votre combo ville ne doit pas avoir de doublons au chargement de l'usf

Ensuite le choix d'une ville ne doit vous renvoyer que les CP correspondant à la ville choisie.

Si souci dites moi

Rechercher des sujets similaires à "supprimer ligne listview"