Doublons complexes

Résolu/Fermé
Lyne450 Messages postés 2 Date d'inscription jeudi 11 octobre 2012 Statut Membre Dernière intervention 12 octobre 2012 - 11 oct. 2012 à 16:26
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 12 oct. 2012 à 12:18
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
A voir également:

5 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
11 oct. 2012 à 18:28
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 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
Modifié par PHILOU10120 le 11/10/2012 à 18:36
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
11 oct. 2012 à 18:33
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 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
11 oct. 2012 à 22:31
doublon ...
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
12 oct. 2012 à 08:15
Bonjour,
J'ai un petit probleme de mulot.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
11 oct. 2012 à 20:18
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 jeudi 11 octobre 2012 Statut Membre Dernière intervention 12 octobre 2012
12 oct. 2012 à 10:47
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 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
12 oct. 2012 à 12:18
Content que tu l'apprécies, il m'aura couté de temps et des cheveux ;-)
eric
0