OVH Cloud OVH Cloud

Connaître le nombre de doublons

17 réponses
Avatar
Crel
Bonjour à toutes et tous
J'ai un tableau classique avec en E3:E1000 des noms
Je souhaite créer un msgbox qui m'indique le nombre de doublons, car il peut
y avoir des doublons, et je souhaite juste les comptabiliser à la demande
avec un bouton.
Merci beaucoup
Patrick

7 réponses

1 2
Avatar
Daniel.M
Salut,

Si, dans mon exemple (voir plus haut), tu cherches à afficher "a c ", alors
essaie le code suivant (le caractères "/" ne doit pas être présent dans tes
noms, sinon change-le):

Public Sub TestDoublons()
MsgBox eXtraieDoublons(Range("Plg"))
End Sub

Public Function eXtraieDoublons(Plg As Range)
Dim i As Long, j As Long
Dim D As String, C As Range

D = ""
For Each C In Plg
If Application.CountIf(Plg, C) > 1 Then
' la cellule a des doublons dans la plage
If InStr(1, D, C) = 0 Then ' pas déjà là
D = D & C & "/"
End If
End If
Next C

eXtraieDoublons = Application.Substitute(D, "/", " ")
End Function

Salutations,

Daniel M.

"Crel" wrote in message
news:
Mille merci AV, désolé, en fait, à l'avenir, je ferais un effort de
formulation.
j'essaye de récupérer le nom des doublons dans le msgbox.
Patrick


Avatar
Crel
Mille merci Daniel, c'est parfait.
Patrick

"Daniel.M" a écrit dans le message de
news:
Salut,

Si, dans mon exemple (voir plus haut), tu cherches à afficher "a c ",
alors

essaie le code suivant (le caractères "/" ne doit pas être présent dans
tes

noms, sinon change-le):

Public Sub TestDoublons()
MsgBox eXtraieDoublons(Range("Plg"))
End Sub

Public Function eXtraieDoublons(Plg As Range)
Dim i As Long, j As Long
Dim D As String, C As Range

D = ""
For Each C In Plg
If Application.CountIf(Plg, C) > 1 Then
' la cellule a des doublons dans la plage
If InStr(1, D, C) = 0 Then ' pas déjà là
D = D & C & "/"
End If
End If
Next C

eXtraieDoublons = Application.Substitute(D, "/", " ")
End Function

Salutations,

Daniel M.

"Crel" wrote in message
news:
Mille merci AV, désolé, en fait, à l'avenir, je ferais un effort de
formulation.
j'essaye de récupérer le nom des doublons dans le msgbox.
Patrick






Avatar
Crel
Re, Daniel, ça marche tellement bien.
Est-il possible d'avoir le nombre de doublon car il se peut qu'un nom soit
saisi plusieurs fois.
Patrick

"Daniel.M" a écrit dans le message de
news:
Salut,

Si, dans mon exemple (voir plus haut), tu cherches à afficher "a c ",
alors

essaie le code suivant (le caractères "/" ne doit pas être présent dans
tes

noms, sinon change-le):

Public Sub TestDoublons()
MsgBox eXtraieDoublons(Range("Plg"))
End Sub

Public Function eXtraieDoublons(Plg As Range)
Dim i As Long, j As Long
Dim D As String, C As Range

D = ""
For Each C In Plg
If Application.CountIf(Plg, C) > 1 Then
' la cellule a des doublons dans la plage
If InStr(1, D, C) = 0 Then ' pas déjà là
D = D & C & "/"
End If
End If
Next C

eXtraieDoublons = Application.Substitute(D, "/", " ")
End Function

Salutations,

Daniel M.

"Crel" wrote in message
news:
Mille merci AV, désolé, en fait, à l'avenir, je ferais un effort de
formulation.
j'essaye de récupérer le nom des doublons dans le msgbox.
Patrick






Avatar
Daniel.M
Bonjour,

Il est donné par Application.CountIf(Plg, C).

Il te suffit d'assigner ce résultat à une variable et de l'imprimer avec le nom.

Salutations,

Daniel M.

"Crel" wrote in message
news:%
Re, Daniel, ça marche tellement bien.
Est-il possible d'avoir le nombre de doublon car il se peut qu'un nom soit
saisi plusieurs fois.
Patrick

"Daniel.M" a écrit dans le message de
news:
Salut,

Si, dans mon exemple (voir plus haut), tu cherches à afficher "a c ",
alors

essaie le code suivant (le caractères "/" ne doit pas être présent dans
tes

noms, sinon change-le):

Public Sub TestDoublons()
MsgBox eXtraieDoublons(Range("Plg"))
End Sub

Public Function eXtraieDoublons(Plg As Range)
Dim i As Long, j As Long
Dim D As String, C As Range

D = ""
For Each C In Plg
If Application.CountIf(Plg, C) > 1 Then
' la cellule a des doublons dans la plage
If InStr(1, D, C) = 0 Then ' pas déjà là
D = D & C & "/"
End If
End If
Next C

eXtraieDoublons = Application.Substitute(D, "/", " ")
End Function

Salutations,

Daniel M.

"Crel" wrote in message
news:
Mille merci AV, désolé, en fait, à l'avenir, je ferais un effort de
formulation.
j'essaye de récupérer le nom des doublons dans le msgbox.
Patrick










Avatar
Crel
Bravo et merci
Patrick

"Daniel.M" a écrit dans le message de
news:
Bonjour,

Il est donné par Application.CountIf(Plg, C).

Il te suffit d'assigner ce résultat à une variable et de l'imprimer avec
le nom.


Salutations,

Daniel M.

"Crel" wrote in message
news:%
Re, Daniel, ça marche tellement bien.
Est-il possible d'avoir le nombre de doublon car il se peut qu'un nom
soit


saisi plusieurs fois.
Patrick

"Daniel.M" a écrit dans le message de
news:
Salut,

Si, dans mon exemple (voir plus haut), tu cherches à afficher "a c ",
alors

essaie le code suivant (le caractères "/" ne doit pas être présent
dans



tes
noms, sinon change-le):

Public Sub TestDoublons()
MsgBox eXtraieDoublons(Range("Plg"))
End Sub

Public Function eXtraieDoublons(Plg As Range)
Dim i As Long, j As Long
Dim D As String, C As Range

D = ""
For Each C In Plg
If Application.CountIf(Plg, C) > 1 Then
' la cellule a des doublons dans la plage
If InStr(1, D, C) = 0 Then ' pas déjà là
D = D & C & "/"
End If
End If
Next C

eXtraieDoublons = Application.Substitute(D, "/", " ")
End Function

Salutations,

Daniel M.

"Crel" wrote in message
news:
Mille merci AV, désolé, en fait, à l'avenir, je ferais un effort de
formulation.
j'essaye de récupérer le nom des doublons dans le msgbox.
Patrick














Avatar
Crel
Re Daniel ta proc fonctionne très bien, mais le pb, c'est que je n'ai pas de
séparateur comme une virgule afin de séparer les noms.
Merci
Patrick

"Daniel.M" a écrit dans le message de
news:
Bonjour,

Il est donné par Application.CountIf(Plg, C).

Il te suffit d'assigner ce résultat à une variable et de l'imprimer avec
le nom.


Salutations,

Daniel M.

"Crel" wrote in message
news:%
Re, Daniel, ça marche tellement bien.
Est-il possible d'avoir le nombre de doublon car il se peut qu'un nom
soit


saisi plusieurs fois.
Patrick

"Daniel.M" a écrit dans le message de
news:
Salut,

Si, dans mon exemple (voir plus haut), tu cherches à afficher "a c ",
alors

essaie le code suivant (le caractères "/" ne doit pas être présent
dans



tes
noms, sinon change-le):

Public Sub TestDoublons()
MsgBox eXtraieDoublons(Range("Plg"))
End Sub

Public Function eXtraieDoublons(Plg As Range)
Dim i As Long, j As Long
Dim D As String, C As Range

D = ""
For Each C In Plg
If Application.CountIf(Plg, C) > 1 Then
' la cellule a des doublons dans la plage
If InStr(1, D, C) = 0 Then ' pas déjà là
D = D & C & "/"
End If
End If
Next C

eXtraieDoublons = Application.Substitute(D, "/", " ")
End Function

Salutations,

Daniel M.

"Crel" wrote in message
news:
Mille merci AV, désolé, en fait, à l'avenir, je ferais un effort de
formulation.
j'essaye de récupérer le nom des doublons dans le msgbox.
Patrick














Avatar
Crel
Désolé, je viens de trouver.
Patrick

"Crel" a écrit dans le message de news:

Re Daniel ta proc fonctionne très bien, mais le pb, c'est que je n'ai pas
de

séparateur comme une virgule afin de séparer les noms.
Merci
Patrick

"Daniel.M" a écrit dans le message de
news:
Bonjour,

Il est donné par Application.CountIf(Plg, C).

Il te suffit d'assigner ce résultat à une variable et de l'imprimer avec
le nom.


Salutations,

Daniel M.

"Crel" wrote in message
news:%
Re, Daniel, ça marche tellement bien.
Est-il possible d'avoir le nombre de doublon car il se peut qu'un nom
soit


saisi plusieurs fois.
Patrick

"Daniel.M" a écrit dans le message
de



news:
Salut,

Si, dans mon exemple (voir plus haut), tu cherches à afficher "a c
",




alors
essaie le code suivant (le caractères "/" ne doit pas être présent
dans



tes
noms, sinon change-le):

Public Sub TestDoublons()
MsgBox eXtraieDoublons(Range("Plg"))
End Sub

Public Function eXtraieDoublons(Plg As Range)
Dim i As Long, j As Long
Dim D As String, C As Range

D = ""
For Each C In Plg
If Application.CountIf(Plg, C) > 1 Then
' la cellule a des doublons dans la plage
If InStr(1, D, C) = 0 Then ' pas déjà là
D = D & C & "/"
End If
End If
Next C

eXtraieDoublons = Application.Substitute(D, "/", " ")
End Function

Salutations,

Daniel M.

"Crel" wrote in message
news:
Mille merci AV, désolé, en fait, à l'avenir, je ferais un effort
de





formulation.
j'essaye de récupérer le nom des doublons dans le msgbox.
Patrick


















1 2