etc
(s=E9paration "-" pour intervalle et ";" pour autre cote)
J'aimerais savoir si des =E9l=E9ments sont r=E9p=E9t=E9s dans le tableau
Exemple "10B/281 - 10B/295" apparait-il quelque part en doublon ? Mais ce n=
'est pas une recherche de doublon il me semble car ce "10B/281 - 10B/295" p=
eut ne pas =EAtre seul dans la cellule, il peut =EAtre par exemple au milie=
u de "15J/287/1 - 15J/287/2 ; 15J/288/1 - 15J/288/2 ; 15J/289/1 - 15J/289/2=
; 10B/281 - 10B/295 ; 15J/290/1 - 15J/290/4 ; 15J/291/1 - 15J/291/2".
Je ne vois pas de solution ?
Merci
=20
etc (séparation "-" pour intervalle et ";" pour autre cote)
J'aimerais savoir si des éléments sont répétés dans le tableau Exemple "10B/281 - 10B/295" apparait-il quelque part en doublon ? Mais ce n'est pas une recherche de doublon il me semble car ce "10B/281 - 10B/295" peut ne pas être seul dans la cellule, il peut être par exemple au milieu de "15J/287/1 - 15J/287/2 ; 15J/288/1 - 15J/288/2 ; 15J/289/1 - 15J/289/2 ; 10B/281 - 10B/295 ; 15J/290/1 - 15J/290/4 ; 15J/291/1 - 15J/291/2". Je ne vois pas de solution ? Merci
Bonjour,
Je ne vois qu'une solution par macro. Est-ce que cela te gênes ?
Danieel
jip a émis l'idée suivante :
Bonjour
J'ai un tableau excel 2010 de 12500 lignes environ contenant des données de
ce type :
etc
(séparation "-" pour intervalle et ";" pour autre cote)
J'aimerais savoir si des éléments sont répétés dans le tableau
Exemple "10B/281 - 10B/295" apparait-il quelque part en doublon ? Mais ce
n'est pas une recherche de doublon il me semble car ce "10B/281 - 10B/295"
peut ne pas être seul dans la cellule, il peut être par exemple au milieu de
"15J/287/1 - 15J/287/2 ; 15J/288/1 - 15J/288/2 ; 15J/289/1 - 15J/289/2 ;
10B/281 - 10B/295 ; 15J/290/1 - 15J/290/4 ; 15J/291/1 - 15J/291/2". Je ne
vois pas de solution ? Merci
etc (séparation "-" pour intervalle et ";" pour autre cote)
J'aimerais savoir si des éléments sont répétés dans le tableau Exemple "10B/281 - 10B/295" apparait-il quelque part en doublon ? Mais ce n'est pas une recherche de doublon il me semble car ce "10B/281 - 10B/295" peut ne pas être seul dans la cellule, il peut être par exemple au milieu de "15J/287/1 - 15J/287/2 ; 15J/288/1 - 15J/288/2 ; 15J/289/1 - 15J/289/2 ; 10B/281 - 10B/295 ; 15J/290/1 - 15J/290/4 ; 15J/291/1 - 15J/291/2". Je ne vois pas de solution ? Merci
jip
Le lundi 19 octobre 2015 11:36:20 UTC+2, DanielCo a écrit :
Bonjour, Je ne vois qu'une solution par macro. Est-ce que cela te gênes ? Danieel
Cela ne me gêne pas, merci d'avance.
Le lundi 19 octobre 2015 11:36:20 UTC+2, DanielCo a écrit :
Bonjour,
Je ne vois qu'une solution par macro. Est-ce que cela te gênes ?
Danieel
Le lundi 19 octobre 2015 11:36:20 UTC+2, DanielCo a écrit :
Bonjour, Je ne vois qu'une solution par macro. Est-ce que cela te gênes ? Danieel
Cela ne me gêne pas, merci d'avance.
DanielCo
Essaie la macro suivante. Si elle te convient, on remplacera les messages par une copie des doublons sur une autre feuille : Sub doublons() Dim C As Range, Tabl(100000) As String, Ctr As Long Ctr = -1 For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp)) ligne = Split(C.Value, " ; ") For Each Item In ligne If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then Ctr = Ctr + 1 Tabl(Ctr) = Item Else MsgBox "doublon : " & Item End If Next Item Next C End Sub
Daniel jip a utilisé son clavier pour écrire :
Le lundi 19 octobre 2015 11:36:20 UTC+2, DanielCo a écrit :
Bonjour, Je ne vois qu'une solution par macro. Est-ce que cela te gênes ? Danieel
Cela ne me gêne pas, merci d'avance.
Essaie la macro suivante. Si elle te convient, on remplacera les messages par
une copie des doublons sur une autre feuille :
Sub doublons()
Dim C As Range, Tabl(100000) As String, Ctr As Long
Ctr = -1
For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp))
ligne = Split(C.Value, " ; ")
For Each Item In ligne
If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
Ctr = Ctr + 1
Tabl(Ctr) = Item
Else
MsgBox "doublon : " & Item
End If
Next Item
Next C
End Sub
Daniel
jip a utilisé son clavier pour écrire :
Le lundi 19 octobre 2015 11:36:20 UTC+2, DanielCo a écrit :
Bonjour,
Je ne vois qu'une solution par macro. Est-ce que cela te gênes ?
Danieel
Essaie la macro suivante. Si elle te convient, on remplacera les messages par une copie des doublons sur une autre feuille : Sub doublons() Dim C As Range, Tabl(100000) As String, Ctr As Long Ctr = -1 For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp)) ligne = Split(C.Value, " ; ") For Each Item In ligne If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then Ctr = Ctr + 1 Tabl(Ctr) = Item Else MsgBox "doublon : " & Item End If Next Item Next C End Sub
Daniel jip a utilisé son clavier pour écrire :
Le lundi 19 octobre 2015 11:36:20 UTC+2, DanielCo a écrit :
Bonjour, Je ne vois qu'une solution par macro. Est-ce que cela te gênes ? Danieel
Cela ne me gêne pas, merci d'avance.
jip
Le lundi 19 octobre 2015 13:34:02 UTC+2, DanielCo a écrit :
Essaie la macro suivante. Si elle te convient, on remplacera les messages par une copie des doublons sur une autre feuille :
Erreur d'éxécution '13' Incompatibilité de type sur la ligne If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
Le lundi 19 octobre 2015 13:34:02 UTC+2, DanielCo a écrit :
Essaie la macro suivante. Si elle te convient, on remplacera les messages par
une copie des doublons sur une autre feuille :
Erreur d'éxécution '13'
Incompatibilité de type
sur la ligne
If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
Le lundi 19 octobre 2015 13:34:02 UTC+2, DanielCo a écrit :
Essaie la macro suivante. Si elle te convient, on remplacera les messages par une copie des doublons sur une autre feuille :
Erreur d'éxécution '13' Incompatibilité de type sur la ligne If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
DanielCo
Erreur d'éxécution '13' Incompatibilité de type sur la ligne If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
Relance cette macro et donne-moi les 3 valeurs affichées : Sub doublons() Dim C As Range, Tabl(100000) As String, Ctr As Long Ctr = -1 For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp)) ligne = Split(C.Value, " ; ") For Each Item In ligne On Error GoTo FinErr If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then Ctr = Ctr + 1 Tabl(Ctr) = Item Else MsgBox "doublon : " & Item End If Next Item Next C FinErr: MsgBox "Ligne : " & C.Row MsgBox Item MsgBox Ctr End Sub Daniel
Erreur d'éxécution '13'
Incompatibilité de type
sur la ligne
If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
Relance cette macro et donne-moi les 3 valeurs affichées :
Sub doublons()
Dim C As Range, Tabl(100000) As String, Ctr As Long
Ctr = -1
For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp))
ligne = Split(C.Value, " ; ")
For Each Item In ligne
On Error GoTo FinErr
If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
Ctr = Ctr + 1
Tabl(Ctr) = Item
Else
MsgBox "doublon : " & Item
End If
Next Item
Next C
FinErr:
MsgBox "Ligne : " & C.Row
MsgBox Item
MsgBox Ctr
End Sub
Daniel
Erreur d'éxécution '13' Incompatibilité de type sur la ligne If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
Relance cette macro et donne-moi les 3 valeurs affichées : Sub doublons() Dim C As Range, Tabl(100000) As String, Ctr As Long Ctr = -1 For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp)) ligne = Split(C.Value, " ; ") For Each Item In ligne On Error GoTo FinErr If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then Ctr = Ctr + 1 Tabl(Ctr) = Item Else MsgBox "doublon : " & Item End If Next Item Next C FinErr: MsgBox "Ligne : " & C.Row MsgBox Item MsgBox Ctr End Sub Daniel
jip
Le lundi 19 octobre 2015 14:34:02 UTC+2, DanielCo a écrit :
> Erreur d'éxécution '13' > Incompatibilité de type > sur la ligne > If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
Relance cette macro et donne-moi les 3 valeurs affichées :
Ligne 1 2X/1 - 2X/11 -1
Le lundi 19 octobre 2015 14:34:02 UTC+2, DanielCo a écrit :
> Erreur d'éxécution '13'
> Incompatibilité de type
> sur la ligne
> If Not IsNumeric(Application.Match(Item, Tabl, 0)) Then
Relance cette macro et donne-moi les 3 valeurs affichées :
Alors : Sub doublons() Dim C As Range, Dico As Object, Ligne Set Dico = CreateObject("Scripting.dictionary") For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp)) Ligne = Split(C.Value, " ; ") For Each Item In Ligne If Not Dico.exists(Item) Then Dico.Add Item, Item Else MsgBox "doublon : " & Item End If Next Item Next C End Sub Daniel
Excel 2010
Alors :
Sub doublons()
Dim C As Range, Dico As Object, Ligne
Set Dico = CreateObject("Scripting.dictionary")
For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp))
Ligne = Split(C.Value, " ; ")
For Each Item In Ligne
If Not Dico.exists(Item) Then
Dico.Add Item, Item
Else
MsgBox "doublon : " & Item
End If
Next Item
Next C
End Sub
Daniel
Alors : Sub doublons() Dim C As Range, Dico As Object, Ligne Set Dico = CreateObject("Scripting.dictionary") For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp)) Ligne = Split(C.Value, " ; ") For Each Item In Ligne If Not Dico.exists(Item) Then Dico.Add Item, Item Else MsgBox "doublon : " & Item End If Next Item Next C End Sub Daniel
jip
Le lundi 19 octobre 2015 15:18:39 UTC+2, DanielCo a écrit :
> Excel 2010
Alors : Sub doublons() Dim C As Range, Dico As Object, Ligne Set Dico = CreateObject("Scripting.dictionary") For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp)) Ligne = Split(C.Value, " ; ") For Each Item In Ligne If Not Dico.exists(Item) Then Dico.Add Item, Item Else MsgBox "doublon : " & Item End If Next Item Next C End Sub Daniel
Merci, ça fonctionne, même si les doublons sont affichés un par un, j e les note, il n'y en a pas trop...heureusement Merci beaucoup.
Le lundi 19 octobre 2015 15:18:39 UTC+2, DanielCo a écrit :
> Excel 2010
Alors :
Sub doublons()
Dim C As Range, Dico As Object, Ligne
Set Dico = CreateObject("Scripting.dictionary")
For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp))
Ligne = Split(C.Value, " ; ")
For Each Item In Ligne
If Not Dico.exists(Item) Then
Dico.Add Item, Item
Else
MsgBox "doublon : " & Item
End If
Next Item
Next C
End Sub
Daniel
Merci, ça fonctionne, même si les doublons sont affichés un par un, j e les note, il n'y en a pas trop...heureusement
Merci beaucoup.
Le lundi 19 octobre 2015 15:18:39 UTC+2, DanielCo a écrit :
> Excel 2010
Alors : Sub doublons() Dim C As Range, Dico As Object, Ligne Set Dico = CreateObject("Scripting.dictionary") For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp)) Ligne = Split(C.Value, " ; ") For Each Item In Ligne If Not Dico.exists(Item) Then Dico.Add Item, Item Else MsgBox "doublon : " & Item End If Next Item Next C End Sub Daniel
Merci, ça fonctionne, même si les doublons sont affichés un par un, j e les note, il n'y en a pas trop...heureusement Merci beaucoup.