[RESOLU] MSGBOX dans une boucle selon countif

leakim

XLDnaute Occasionnel
Bonjour,
Le titre "MSGBOX dans une boucle selon countif" dit comme çà ?

Je suis sur un projet dans lequel j'ai un userform qui renseigne des cellules selon une listbox en multichoix.
Ce que j'aimerai c'est que si le choix a déjà été fait dans la zone, alors une msgbox me dit "doublon" soit je laisse soit je passe à l'autre sélection.

Dans le code, je ne parviens pas à renseigner la seconde variante de countif que j'aimerai reprendre de la listbox
En d'autre termes, au fur et à mesure que les éléments de la listbox s’inscrivent dans les cellules, vérifier que la valeur à venir n'est pas en double.
Ci dessous le code que j'ai.

Code:
Private Sub CommandButton1_Click()
Dim I As Integer

    If CheckBox1 = True Then

        For I = 0 To ListBox1.ListCount - 1
            ActiveCell.Offset(I, 0) = ListBox1.List(I)
        Next I
    End If
    
        For I = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(I) = True Then ListBox2.AddItem ListBox1.List(I)
        Next I
        
        For I = 0 To ListBox2.ListCount - 1
            If ListBox2.Selected(I - counter) Then
                ListBox2.RemoveItem (I - counter)
                counter = counter + 1
            End If
        Next I
        
        For I = 0 To ListBox2.ListCount - 1
            ActiveCell.Offset(I, 0) = ListBox2.List(I)
                If Worksheets.Application.CountIf(Range("$C$9:$L$27"), ActiveCell) > 0 Then
                MsgBox "attention doublon"
                End If
        Next I

Unload UserForm1
'ActiveCell.Offset(0, 1).Select
End Sub

Merci d'avance à ceux qui me liront,

Cordialement,

Leakim
 

Pièces jointes

  • Répartition résidents forum.xls
    76 KB · Affichages: 26
  • Répartition résidents forum.xls
    76 KB · Affichages: 26
Dernière édition:

leakim

XLDnaute Occasionnel
Re : MSGBOX dans une boucle selon countif

Bonsoir forum,
Bonsoir jpb388,
J'ai repris ta proposition en vain... Ce qui me donne le message, même avec une valeur unique? Je cale dur sur ce problème, surtout que je dois faire le test avec des plages distinctes.
Merci de votre aide,

Leakim
 

jpb388

XLDnaute Accro
Re : MSGBOX dans une boucle selon countif

re
chez moi ceci fonctionne
Code:
        For I = 0 To ListBox2.ListCount - 1
            On Error Resume Next
                 y = IsError(Range("$C$9:$L$27").Find(ListBox2.List(I), , , xlWhole).Address)
                If y <> "" Then MsgBox "attention doublon"
            On Error GoTo 0
                ActiveCell.Offset(I, 0) = ListBox2.List(I)
        Next I
 

leakim

XLDnaute Occasionnel
Re : MSGBOX dans une boucle selon countif

Re,
Merci, cela fonctionne aussi chez moi. Reste
... surtout que je dois faire le test avec des plages distinctes.
.
En fait je dois tenir compte non pas de toute la plage c9:l27 mais seulement C9:C27;M9:M27; ... colonne à intervalle de dix. Je me disais que cela serait plus "simple" en nommant la plage. Sauf, que selon là où l'userform s'ouvre il faut que le test se fasse sur la bonne plage....???!!!
Merci de ton aide,
Merci aussi aux autres pour leurs propositions.

Cordialement,
Leakim
 

leakim

XLDnaute Occasionnel
Re : MSGBOX dans une boucle selon countif

Re,
Pour prolonger la réflexion, je me demande si c'est une bonne piste avec
Code:
        col = ActiveCell.Column
        If col = 3 Or col = 13 Or col = 23 Or col = 33 Then
        set lieu = Range("lun_M1")
        End If
        
        For i = 0 To ListBox2.ListCount - 1
            On Error Resume Next
                 y = IsError(Range(lieu).Find(ListBox2.List(i), , , xlWhole).Address)
                If y <> "" Then MsgBox "attention doublon"
            On Error GoTo 0
                ActiveCell.Offset(i, 0) = ListBox2.List(i)
        Next i

En fait j'ai un bug sur le test ?

Merci de vos retours,

Leakim
 
Dernière édition:

leakim

XLDnaute Occasionnel
Re : MSGBOX dans une boucle selon countif

excuses-moi, le tableau est contigu. Les colonnes se suivent sans vides. La colonne matin n'est présente qu'un fois à gauche.
Pour tenter d'être plus lisible. Si je choisis de faire un groupe le lundi matin de semaine impaire ou se trouve la cellule C9, par exemple, je dois tester tout les lundis matins impaires dans les autres groupes.

En espérant répondre à ta question

Merci,
Leakim
 
Dernière édition:

jpb388

XLDnaute Accro
Re : MSGBOX dans une boucle selon countif

Bonjour à tous
met ton fichier original avec des faux noms pour voir comment il se goupille et le nombre de groupe etc...
jusqu'à maintenant tu faisais une recherche sur une zone de plage et maintenant tu parles seulement de 1 seul jours avec une différence des pairs et impairs
laquelle est la bonne
 

leakim

XLDnaute Occasionnel
Re : MSGBOX dans une boucle selon countif

Bonjour,
Excuses moi de n'être pas clair. J'essaye d'aider un ami sur son outil, alors j'avais pas toutes les infos. J'ai passé une bonne heure hier soir avec lui pour bien poser les choses.
Je joint un fichier plus complet. J'ai coloré les zones afin que cela soit plus explicite ( j'ai pas colorié tout le tableau non plus:)).
L'idée est donc de vérifier si il y a un doublon dans la zone. Ce qui est à conjuguer avec une "géolocalisation" de la cellule active afin que le test ce fasse avec la bonne zone.

N'hésitez à me questionner au besoin.

Merci,

Leakim
 

Pièces jointes

  • Répartition résidents forum.xls
    150 KB · Affichages: 21
  • Répartition résidents forum.xls
    150 KB · Affichages: 23

leakim

XLDnaute Occasionnel
Re : MSGBOX dans une boucle selon countif

J'avais remis le code dans le fichier et c'est nickel, vraiment merci.
J'ai une dernière question. Dans la msgbox on renvoie la référence où se trouve le doublon. Est-ce possible, avec la fonction première ligne, de renvoyer dans la msgbox les valeurs des cellules en lignes 6 et 7 si c'est le matin et en lignes 28 et 29 qui sont relatif à la colonne de la référence double. De sorte que l'on puisse savoir, dans le message d'info, le lieu de l'activité et avec qui, il y a un doublon.

Je regarde de mon coté, car je suis sûr que cela rendrais plus facile la lecture.

Cordialement,
Leakim
 

Discussions similaires

Réponses
4
Affichages
213
Réponses
2
Affichages
90
Réponses
17
Affichages
835
Réponses
11
Affichages
291

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 168
dernier inscrit
isidore33