Doublons dans meme cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chrisdu73

XLDnaute Occasionnel
bonjour a vous tous,

j'ai un petit souci pas bien grave que j'arrive pas a resoudre
en colonne A j'ai une serie de code separé par un espace.
exemple:
(250 125 488 351)
je voudrais identifier si un code est utiliser 2 fois dans la cellule
exemple:
(250 247 250 699 872) ici 250 est present 2 fois
cette recherche etant faite sur la colonne entiere

merci pour votre aide et vos astuces toujours interessantes.

Chris
 
Re : Doublons dans meme cellule

Re,

On peut même rendre l'argument n Optional (facultatif), ce qui permet d'obtenir le résultat brut (non ventilé) :

Code:
Function EnlèveDoublons$(txt$, Optional n%)
Dim s, u%, i%, test1 As Boolean, test2 As Boolean
txt = Application.Trim(txt)
s = Split(txt)
u = UBound(s)
For i = 0 To u
  If i = 0 Then test1 = True Else test1 = s(i) <> s(i - 1)
  If i = u Then test2 = True Else test2 = s(i) <> s(i + 1)
  If test1 And test2 Then EnlèveDoublons = EnlèveDoublons & " " & s(i)
Next
If n = 0 Then EnlèveDoublons = Trim(EnlèveDoublons): Exit Function
s = Split(Trim(EnlèveDoublons))
If 2 * n - 1 > UBound(s) Then EnlèveDoublons = "": Exit Function
EnlèveDoublons = s(2 * n - 2) & "-" & s(2 * n - 1)
End Function
Fichier (2).

A+
 

Pièces jointes

Re : Doublons dans meme cellule

Re,

Si les données à étudier sont en désordre, on peut assez facilement les trier quand il s'agit d'heures (ou de valeurs numériques).

On peut utiliser pour cela Application.Small (fonction PETITE.VALEUR) :

Code:
Function EnlèveDoublons$(txt$, Optional n%)
Dim s, u%, tablo#(), i%, test1 As Boolean, test2 As Boolean
txt = Replace(Application.Trim(txt), "h", ":") 'pour obtenir des formats heure
s = Split(txt)
u = UBound(s)
'---classement des heures---
ReDim tablo(u)
For i = 0 To u
  tablo(i) = CDbl(CDate(s(i)))
Next
For i = 0 To u
  s(i) = Application.Small(tablo, i + 1) 'fonction Excel PETITE.VALEUR
Next
'---détermination des valeurs uniques---
For i = 0 To u
  If i = 0 Then test1 = True Else test1 = s(i) <> s(i - 1)
  If i = u Then test2 = True Else test2 = s(i) <> s(i + 1)
  If test1 And test2 Then EnlèveDoublons = EnlèveDoublons & " " & Format(s(i), "hh""h""mm")
Next
'---restitutions---
If n = 0 Then EnlèveDoublons = Trim(EnlèveDoublons): Exit Function
s = Split(Trim(EnlèveDoublons))
If 2 * n - 1 > UBound(s) Then EnlèveDoublons = "": Exit Function
EnlèveDoublons = s(2 * n - 2) & "-" & s(2 * n - 1)
End Function
Fichier (3).

A+
 

Pièces jointes

Re : Doublons dans meme cellule

Après quelques tâtonnements (ça m'apprendra à me précipiter sans regarder), ça marche parfaitement !
Merci beaucoup job75
(J'ai essayé que ta 1e version pour l'instant, je me penche sur les autres après)
Bon WE tout le monde
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

C
Réponses
1
Affichages
2 K
claivier_58
C
C
Réponses
3
Affichages
2 K
claivier_58
C
F
Réponses
3
Affichages
1 K
T
Retour