Supprimer une ligne dans une ListView ?

Bonjour Dan,

J'ai repris le fichier en intégrant les procédures une à une avec un tirage complet à chaque intégration.

tous s'est bien passé.

J'ai ensuite fait un test avec 18 joueurs et là je suis tombé par hasard sur le problème :

Au 2ème tirage, à la consolante, il ne reste que 4 équipes en jeu, et trois grilles dessinées, si on coche les les 3 case "G/P" des trois grilles, le programme se bloque. Si on ne coche pas les cases de la grille vide, le programme se déroule normalement.

Je suis retourné dans "Visual Basic" en pas à pas, et j'ai constaté que les lignes :

            If Xa <> Xc Then

                    MsgBox "Il semble que tous les résultats ne soient pas saisis !", vbExclamation, "Il manque les résultats de " & Xa - Xc & " équipes /" & Xa & " !"
                    Exit Sub

            End If

étaient ou double, j'ai supprimé la seconde, et tout est rentré dans l'ordre.....

Bonjour

Je suis retourné dans "Visual Basic" en pas à pas, et j'ai constaté que les lignes :
.....
étaient ou double, j'ai supprimé la seconde, et tout est rentré dans l'ordre

C'est bien dans M5_doublettes que vous avez ce souci. Si oui c'est que vous n'aviez pas recopié le code dans le fichier que j'ai posté
Dans votre feuille "Arevoir", le point 10 semble ok ?

Si tout est ok. Je vais regarder pour les triplettes

Merci Dan,

Je viens de vérifier, J'avais bien recopié le code que vous m'avez fourni. Et j'ai contrôlé le code de votre fichier, il contient bien les 2 instances de cette portion de code dans le tirage de la 3eme partie.

le point 10 de la feuille "Arevoir" est réglé.

J'allais m'atteler aux triplettes, mais je vais vous laisser faire, et me pencher sur une autre tâche....

Merci encore et bonne continuation...

Je viens de vérifier, J'avais bien recopié le code que vous m'avez fourni. Et j'ai contrôlé le code de votre fichier, il contient bien les 2 instances de cette portion de code dans le tirage de la 3eme partie.

Oui exact, mais les variables sont différentes. Xa avec Xc et Ya avec Yc. Le contrôle est différent.

C'est vrai, je n'y ai pas fait attention, Mais alors pourquoi ça a bugué sur les lignes Y, et en les supprimant, ça a réglé le problème ?

Si vous avez une explication, j'aimerais savoir.

1. Mais alors pourquoi ça a bugué sur les lignes Y, et en les supprimant, ça a réglé le problème ?

Pour moi vous ne devez pas supprimer car le contrôle se fait afin de voir si le nombre d'équipes en i a bien un G ou P en colonne K. Donc si vous l'oubliez c'est comme si vous n'aviez pas mis de résultat.
Il faudrait que je vois une photo de votre tableau lorsque cela bugue.

2. Autre point, à quoi sert le mot consolante car placé en colonne Q

Voici les codes du module M_6Triplette. Il vous suffit de remplacer tous ceux dans votre fichier par ceux du fichier joint

14m-6triplette.txt (18.94 Ko)

3. Dans votre feuille Arevoir, si vous voulez une combo pour les villes et le CP (votre point 5) , alors le point 6 ne sert pas.

Le mot consolante ne sert a rien, c'était juste un memo pour moi...

Effectivement, le point 6 ne sert pas, je l'avais supprimé de mon côté.

Le tirage Triplette est parfait...

Voici la photo :

bug

Si je ne coche pas la case G/P de la 1ere partie de la consolante, celle qui est repérée par le tour vert, ça passe...

J'ai fait le point 4 de la feuille "A_faire", Vous pouvez le supprimer de votre feuille....

Si je ne coche pas la case G/P de la 1ere partie de la consolante, celle qui est repérée par le tour vert, ça passe...

Heu ?? je n'ai pas compris

La cellule "K30".

Pour moi vous ne devez pas mettre d'info dans G/P s'il n'y a pas de joueurs des deux cotés.
Je parle du 2ieme tableau concours partie 2 à droite. Les variable Ya et Yc ne sont pas identiques car elles comparent le nombre de valeur dans la colonne N° et la colonne G/P. Dans votre tableau il y a 2 numéros et 3 G/P. ..
D'où le message d'erreur que vous recevez.

Si un joueur à gauche et pas de joueur à droite, le joueur à gauche est gagnant par défaut. Dans ce cas vous devez ajouter une info dans G/P. Ce que vous avez d'ailleurs bien fait dans le tableau Concours partie 1.
Et bien entendu vous devez laisser Ya <> Yc

Je ne comprend pas:

Ce que vous avez d'ailleurs bien fait dans le tableau Concours partie 1.

Je n'ai pas d'écriture automatique dans G/P...

je coche forcément toutes les cases G/P puisque je n'ai pas le cas des 2 cases vides dans la même partie.

Ce serait peut-être la solution :

Si un joueur à gauche et pas de joueur à droite, le joueur à gauche est gagnant par défaut

Dans ce cas, écriture automatique de "G" en G/P, et "IMPAIR" peut-être en rouge dans la case adversaire.

Je n'ai pas d'écriture automatique dans G/P...

Oui je sais mais regardez dans votre vue dans le tableau en dessous à droite. Vous avez mis un G dans la colonne K alors que vous n'avez pas de joueur et donc pas de N° en i. Du coup Ya n'est pas égal à Yc. Le code vous renvoie donc un message vous disant que vous n'avez pas introduit tous les scores.
Donc dans le cas, si vous n'avez pas joueur ni à gauche ni à droite, vous ne devez pas mettre d'info dans la colonne G/P (ici colonne K pour l'exemple)

L'image de ce que vous devez avoir pour que vous compreniez

presse papier02

J'ai encore du mal à comprendre, j'ai mis un "G" dans la cellule "K18" parce que j'ai un joueur de chaque côté, mais pas dans la cellule "K21" ou il n'y a pas de joueurs...

Ya: compte bien dans la colonne "A", et "Yc" dans la colonne "C", Je ne voie pas en quoi la colonne "K" influe sur ces comptages.

dans le cas ou une équipe se retrouve sans adversaire, comme dans la colonne "B" du concours principal, J'ai mis un "G" dans la colonne "C", donc Ya est bien égal à Yc ...

J' ai bien compris qu'il ne fallait rien mettre en "K" s'il n'y a pas de joueur de part et d'autre. Mais pour éviter une fausse manip de l'utilisateur ( il peut se tromper en cochant la case par inadvertance...) et se trouver avec un programme bloqué, ou être obligé de recommencer le tirage, il faudrait bloquer l'écriture dans le cas ou les 2 cases joueur sont vide.

Désolé d'être un peu lent à comprendre, et merci de votre indulgence.

J'ai transformé mes textbox Ville et CP en ComboBox sans doublons. Pour l'instant uniquement la 1ere ligne du point 5 de la feuille "A_Revoir", J'essayerais de faire la suite un peu plus tard.

Pour l'instant, je dois aller récupérer mon petit fils.

Bonne Journée...

Bonjour

Non c'est Xa et Xc qui concernent les colonnes A et C.
Pour les colonnes i et k, c'est Ya et Yc qui sont concernés (regardez au début du code Sub GagnantsConcoursDoublette_3eP)

Mon explication concernait votre message ici https://forum.excel-pratique.com/s/goto/1056592 où on voit que dans le tableau en bas à droite, vous avez mis un G en colonne i alors que vous n'avez pas de joueur de part et d'autre (regardez à gauche du bouton "Tirage 3ieme partie").
Dans ce cas vous recevez le message.

.....se trouver avec un programme bloqué, ou être obligé de recommencer le tirage, il faudrait bloquer l'écriture dans le cas ou les 2 cases joueur sont vide.

Effectivement

Edit : Dans la macro Private Sub Worksheet_BeforeDoubleClick de la feuille Concours, vous pouvez changer les lignes qui se trouve entre UNPROTECT et le CANCEL par les lignes ci-dessous

        If Cells(Target.Row).Offset(, -2) <> "" Then 'erroné VOIR EDIT 2
            Cells(Target.Row, col) = "G"
            Cells(Target.Row, col).Offset(0, i) = "P"
        End If

ou comme ceci si vous voulez un message

        If Cells(Target.Row).Offset(, -1) <> "" Then 'erroné VOIR EDIT 2
            Cells(Target.Row, col) = "G"
            Cells(Target.Row, col).Offset(0, i) = "P"
        Else
            MsgBox "Il n'y a pas de joueur pour cette partie"
        End If

Dites moi la solution que vous choisissez

Edit 2 : Code ci-dessus erroné --> Rectification Voir message --> https://forum.excel-pratique.com/s/goto/1056940

Bonsoir Dan,

OK, maintenant j'ai compris, J'avis effectivement zappé Xa et Xc, J'était resté bloqué sur Ya et Yc, pour lesquels je croyais que le petit a et le petit c faisaient référence à la lettre de la colonne.

Merci de m'avoir éclairé...

Merci aussi pour le code, mais je n'ai pas réussi à le faire fonctionné tel quel, alors j'ai cherché, et voici celui que j'ai choisi (inspiré de votre 2ème version):

        If Cells(Target.Row, col - 1) = "" And Cells(Target.Row, col).Offset(0, i - 1) = "" Then
            MsgBox "Il n'y a pas de joueur pour cette partie"
        Else
            Cells(Target.Row, col) = "G"
            Cells(Target.Row, col).Offset(0, i) = "P"
        End If

J'ai fait quelques tests, et ça a l'air de bien fonctionner.

Bonjour

Merci aussi pour le code, mais je n'ai pas réussi à le faire fonctionné tel quel, alors j'ai cherché, et voici celui que j'ai choisi (inspiré de votre 2ème version):

Exact, je me suis trompé dans la première ligne. Le code rectifié comme ceci

        If Cells(Target.Row, col - 1) <> "" Then
            Cells(Target.Row, col) = "G"
            Cells(Target.Row, col).Offset(0, i) = "P"
        Else
            MsgBox "Il n'y a pas de joueur pour cette partie"
        End If

Je ne vois pas l'intérêt de votre deuxième condition contenant le i. Celle-ci convient et vous donne le même résultat.
Refaite un test

Cordialement

Bonjour Dan,

OK, ça fonctionne bien.

Je vais donc adopter cette solution simplifiée.

Merci.

Je ne sais pas ou en est votre feuille "A_revoir", aussi pour actualisation de la votre, voici la mienne :

5 Transformer les TextBox "Ville" et "CP" en ComboBox reliée a la feuille "Data"

Les rendres dépendantes l'une de l'autre

Autoriser l'extension des listes "Ville" et "CP" de la feuille "Data" avec demande de confirmation

si on rentre une nouvelle ville et un nouveau CP dans les ComboBox

7 Revoir la Vérification de l'adresse "Email"

Le point ne peut être immédiatement apprès l'arobase

La partie après le point ne peut reter vide

9 Problème "Cdate" dans la procédure "Private Sub btn_Modif_Click" du UserForm "usf_Gestion" de modification d'un enregistrement.

Ce bouton est accéssible en cliquant sur "Plus d'otions" dans le même IserForm.

11 Obliger le remplissage de tous les champs dans usf_NonMembre

12 Réactualiser les champs "Nb parties" du "usf_Inscription" après inscription d'un joueur non membre

Je viens de régler le point 12 par l'ajout de ce code :

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

entre la ligne "Call M_2AfficherFormulaires.InitListe2" et le "End Sub" en fin de procédure "Private Sub CommandButton1_Click()" du UserForm "usf_NonMembre".

Cordialement...

Rechercher des sujets similaires à "supprimer ligne listview"