Macro pour dtecter les doublons dans plusieurs cellules

fero7

XLDnaute Nouveau
Bonjour le forum;

J'ai un tableau avec plusieurs colonnes, je voudrais un code VBA qui me permettrais de savoir si un nom a été inséré en double sur toute la ligne. Le fichier joint explique bien mon besoin.

Merci pour votre aide.
 

Pièces jointes

  • Macro pour détecter les doublons.xlsx
    124.5 KB · Affichages: 37

Modeste

XLDnaute Barbatruc
Re : Macro pour dtecter les doublons dans plusieurs cellules

Bonjour fero7, Papou-net, le reste du monde,

Dites, ma brave dame :D dupliquer la feuille, c'est bien ... mais enregistrer ensuite le fichier au format '.xlsx', c'est un peu le tonneau des Danaïdes: les macros disparaissent instantanément du fichier (Excel a d'ailleurs dû t'afficher un petit message ... auquel, comme beaucoup, tu te seras empressée de répondre "OK"? :eek:)

Ceci dit, ne t'empresse pas de redéposer un fichier '.xlsm' (je devrais être capable de recopier le code, dans ton dernier classeur :rolleyes:)

Par contre, il faudrait préciser ta demande: si je sélectionne "TOTO" en F3 du "calendrier interne", la première macro cherchait sur la même ligne, dans les fameuses colonnes jaunes ... qui ne le sont pas (j'espère que l'écart entre toutes ces colonnes restera identique, lui!?). La nouvelle demande c'est de chercher, en plus, "TOTO" dans l'autre feuille, soit ... mais où? Sur la même ligne, dans la même colonne, n'importe où dans la feuille, ...?
Et on doit prévoir la même chose dans la feuille "Délocalisée" aussi (la recherche dans la feuille elle-même et dans la première?)
Le message "déjà pris" doit s'afficher dans tous les cas, ou alors on garde "Doublon" quand c'est dans la même feuille?

À court ou moyen terme, tu n'envisages pas de faire la même chose avec d'autres feuilles encore?
 

fero7

XLDnaute Nouveau
Re : Macro pour dtecter les doublons dans plusieurs cellules

:D:D:D
Bonjour Modeste,

Si on sélectionne TOTO en F3 sur la feuille calendrier le 1/01 et on fait ensuite la même chose le même jour sur n'importe quelle cellule de la 2ème feuille délocalisée, il faudrait que le message s'affiche. le principe est toujours le même: sur une même journée (ou même ligne) le nom sélectionnée ne doit pas être dupliqué sur les 2 feuilles.
En résumé, on garde Doublon qu'on c'est sur la même feuille et "on" (c'est trop dire ;) par ce que en ce moment je ne fais que copier les codes transmis) Donc et créer le message "Déjà pris" lorsque le nom est dupliqué sur les 2 feuille, la même journée toujours.

Et merci encore pour ta réponse.
 

Modeste

XLDnaute Barbatruc
Re : Macro pour dtecter les doublons dans plusieurs cellules

Re,

Je suis parti du principe que la "même date" ... ce sera sur la même ligne dans les deux feuilles!
Voici un exemple de code à utiliser dans la feuille "Calendrier interne" (je verrais assez bien un 'e' comme 4e caractère :p)

Tu vas devoir faire l'effort de le recopier dans les deux feuilles (en l'adaptant un tout petit peu, pour la seconde!)
La saisie est d'abord comparée aux autres colonnes de la même feuille. La procédure s'arrête s'il y a doublon. Si pas, on scanne les colonnes "jaunes" de l'autre feuille.

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If (Target.Column + 3) Mod 9 = 0 And Target <> "" Then
        For col = 6 To 146 Step 9
            If Cells(Target.Row, col) = Target Then cpt = cpt + 1
        Next col
        If cpt > 1 Then
            MsgBox "Doublon!!"
            Target = ""
            Exit Sub
        Else
            cpt = 0
            With Sheets("Délocalisée")
            For col = 6 To 146 Step 9
                If .Cells(Target.Row, col) = Target Then cpt = cpt + 1
            Next col
            If cpt >= 1 Then
                MsgBox "Déjà pris!"
                Target = ""
            End If
            End With
        End If
    End If
End Sub

... ça roule comme ça?
 

Discussions similaires

Réponses
22
Affichages
609

Statistiques des forums

Discussions
312 338
Messages
2 087 393
Membres
103 537
dernier inscrit
alisafred974