Doublons complexes

Résolu
Lyne450 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaiterais me débarrasser de doublons dans un tableur. Ce sont des noms d'entreprises dans une seule colonne. Mais, ce n'est pas si simple certaines ne sont pas bien écrit.

Exemple :
L'entreprise "Blabla" peut-être inscrite sous le nom : "Blabla entreprise", "Société Blabla", "Blabla SAS", etc.

En fait j'aimerais un outil du type "rechercher/remplacer" qui me donne les trucs qu'il trouve louche (comme les exemples que j'ai mis ci-dessus) et que ce soit à moi de confirmer s'il doit le supprimer ou non. J'ai beaucoup de noms de société, je ne peux utiliser l'outil "rechercher/remplacer".

Est-ce possible ? (dites-moi que oui pitié)



MERCI D'AVANCE,
Lyne450

5 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

un exemple de code a mettre dans un module VBA:

ouverture VBA: touche Alt+F11

fenetre en haut a gauche cick droit sur microsoft........
insersion------>module
double click gauche sur module1

copier le code dans la partie droite de la fenetre

Sub Cmd_Detec_Doublon_Click()
  Dim T_ColA, NbLig, LDep, Defil, retval
  
  Do While -1
    With Sheets("feuil1")
      'pour la dernière ligne de la colonne A
      derlig = Range("A" & Rows.Count).End(xlUp).Row
      'Mise en memoire pour recheche plus rapide
      Set T_ColA = .Range("A1:A" & derlig)
      Choix = "2012"
      Choix = InputBox("Saisie Entreprise: ", "Suppression Doublons")
      If Choix <> "" And Choix <> "2012" Then
        'Recheche du nombre de lignes consernees
        NbLig = Application.CountIf(T_ColA, "*" & Choix & "*")
        'Test pour suite
        If NbLig > 0 Then
          LDep = 1
          For Defil = 1 To NbLig
            'Recherche de la position des nom pour question: supprime O/N
            LDep = .Columns("A").Find(Choix, .Cells(LDep, "A"), , xlPart).Row
            'Choix: supprime O/N
            retval = MsgBox("Suppression Doublon" & vbLf & .Range("A" & LDep), vbYesNo)
            If retval = vbYes Then
              'Suppression cellule
              .Range("A" & LDep).Delete Shift:=xlUp
              LDep = LDep - 1
            Else
              'passe
            End If
          Next Defil
        Else
          MsgBox "Pas trouvé!!!!!", vbOKOnly
        End If
      Else
        'sortie
        MsgBox "Ah!Que coucou!!!!!", vbOKOnly
        Exit Sub
      End If
    End With
  Loop
End Sub


pour lancer:
EXCEL2007
menu--->developpeur---->macro---->Cmd....

EXCEL2003:
menu---->Outils--->macro--->macro----->Cmd.......


Bonne suite
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Bonjour

Pouvez vous trier votre liste d'entreprises
pour mettre toutes les entreprises commencent par "société" ensemble et mettre cette formule dans une colonne adjacente
=STXT(A3;CHERCHE(" ";A3;1)+1;NBCAR(A3)-CHERCHE(" ";A3;1)+1)
cela vous donnera "Blabla" si la cellule contient "sociéte Blabla"
Pour toutes les autres qui commence par Blabla mettre cette formule
=STXT(A4;1;CHERCHE(" ";A4;1))
et vous obtiendrez "Blabla" le nom de la société a une condition que le nom soit séparé du reste par un espace et qu'il n'y ai pas de nom composé.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

un exemple de code.

Code a copier dans un module VBA:

Ouvrir VBA: touches Alt+F11

click droit sur microsoft..........
insersion module

double click gauche sur Module1

click droit sur fenetre a droite

Copier le code

Sub Cmd_Detec_Doublon_Click()
  Dim T_ColA, NbLig, LDep, Defil, retval
  
  Do While -1
    With Sheets("feuil1")
      'pour la dernière ligne de la colonne A
      derlig = Range("A" & Rows.Count).End(xlUp).Row
      'Mise en memoire pour recheche plus rapide
      Set T_ColA = .Range("A1:A" & derlig)
      Choix = "2012"
      Choix = InputBox("Saisie Entreprise: ", "Suppression Doublons")
      If Choix <> "" And Choix <> "2012" Then
        'Recheche du nombre de lignes consernees
        NbLig = Application.CountIf(T_ColA, "*" & Choix & "*")
        'Test pour suite
        If NbLig > 0 Then
          LDep = 1
          For Defil = 1 To NbLig
            'Recherche de la position des nom pour question: supprime O/N
            LDep = .Columns("A").Find(Choix, .Cells(LDep, "A"), , xlPart).Row
            'Choix: supprime O/N
            retval = MsgBox("Suppression Doublon" & vbLf & .Range("A" & LDep), vbYesNo)
            If retval = vbYes Then
              'Suppression cellule
              .Range("A" & LDep).Delete Shift:=xlUp
              LDep = LDep - 1
            Else
              'passe
            End If
          Next Defil
        Else
          MsgBox "Pas trouvé!!!!!", vbOKOnly
        End If
      Else
        'sortie
        MsgBox "Ah!Que coucou!!!!!", vbOKOnly
        Exit Sub
      End If
    End With
  Loop
End Sub


pour lancer:
EXCEL2007
menu, developpeur, macro, Cmd....

EXCEL2003
menu, outils, macro, macro, Cmd......

Bonne suite
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 353
 
doublon ...
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,
J'ai un petit probleme de mulot.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Une macro qui supprime les doublons exacts (avec demande confirmation) puis dresse une liste de mots clés pour les entreprises.
Dans une deuxième feuille tu peux lister les mots clés qui ne sont pas considérés comme caractéristiques (entreprise, Société, SA,..) pour ne garder que les mots clés essentiels (ceux que tu n'as pas listé comme Blabla)

Ces mots clés sont triés et inscrits en colonne B si au moins 2 entreprises ont ces mots clés.
Un double-clic sur les mots clés supprime la ligne.

fichier exemple : https://www.cjoint.com/?BJlureJtjaA

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lyne450 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
f894009 et PHILOU10120,
Merci beaucoup pour vos réponses rapides.
Malheureusement je ne peux pas appliquer vos solutions dans mon document : j'ai trop d'entrées pour pouvoir entrer un mot clé. Le macro doit fonctionner seul : je ne peux lui donner aucune info.

Et c'est ce dernier point qui m'amène à m'exclamer :

==== > WA - OU !
Eric : ton document est un vrai bijoux ! C'est exactement l'outil qu'il me fallait !
Merci, merci, merci, d'avoir compris mon soucis, si je le pouvais, je t'embrasserais (mais bon...)

Lyne
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Content que tu l'apprécies, il m'aura couté de temps et des cheveux ;-)
eric
0