lister les villes de meme nom a partir d'une base de données

matou59

XLDnaute Junior
Bonjour,
A partir de ma base de donnees composee de 6 colonnes comme suit:
A B C D E F
NOM VILLE CODE POSTAL N° DEPARTEMENT NOM DEPARTEMENT CHEF LIEU NOM REGION

CE QUI REPRESENTE ENVIRON 35000 ENREGISTREMENTS.......

JE VOUDRAIS LISTER TOUS LES ENREGISTREMENTS DONT LES NOMS DE VILLE SONT IDENTIQUES

ma base de donnees se trouve dans une feuille d'un classeur appelée VILLES
Je veux lister les enregistrements identiques dans une 2e feuille du meme classeur appelée RESULTAT

Faire un filtre sur la base de données est beaucup trop long....35000 enregistrements c'est pas rien....

merci d'avance
 

matou59

XLDnaute Junior
Re : lister les villes de meme nom a partir d'une base de données

dans le classeur VILLES 2 feuilles (villes et resultat)

dans la feuille resultat on retrouve les villes de meme nom dans pluseurs departements
 

Pièces jointes

  • VILLES.xls
    44.5 KB · Affichages: 149
  • VILLES.xls
    44.5 KB · Affichages: 157
  • VILLES.xls
    44.5 KB · Affichages: 162

MJ13

XLDnaute Barbatruc
Re : lister les villes de meme nom a partir d'une base de données

Bonjour Matou, Jean-Claude

Matou, tu peux faire ceci:

Filtrer ta base en mode avancé et faire une extraction sans doublon.

Tu sélectionnes l'ensemble de ta colonne 1 contenant les noms de villes (Ctrl+Shift+Bas) puis lancer cette macro:

Code:
Sub extrait_doublons()
n = 1
For Each cell In Selection
If cell.RowHeight = 0 Then Sheets(3).Cells(n, 1) = cell: n = n + 1
Next
End Sub
 

job75

XLDnaute Barbatruc
Re : lister les villes de meme nom a partir d'une base de données

Bonjour matou59, (re)salut JC, Michel,

Ou aussi directement cette macro qui utilise le filtre élaboré :

Code:
Sub VillesDoublons()
With Sheets("RESULTAT")
  Application.ScreenUpdating = False
  Sheets("VILLES").Cells.Copy .Cells
  .[A2:F65536].Sort Key1:=.[A2], Order1:=xlAscending, Header:=xlYes 'tri sur les noms
  .[G3].Formula = "=AND($A3<>$A2,$A3<>$A4)"
  .[H3] = True
  .[A2:F65536].AdvancedFilter xlFilterInPlace, CriteriaRange:=.[G2:G3]
  .[A3:F65536].SpecialCells(xlCellTypeVisible).Delete xlUp
  .[A2:F65536].AdvancedFilter xlFilterInPlace, CriteriaRange:=.[H2:H3]
  .[G3:H3].ClearContents
  .Activate
End With
End Sub

Il sera intéressant de comparer les durées d'exécution des différentes solutions...

Edit : ah je n'avais pas ouvert le fichier, pas besoin d'insérer de 1ère ligne...

A+
 
Dernière édition:

matou59

XLDnaute Junior
Re : lister les villes de meme nom a partir d'une base de données

merci de bien vouloir m'aider.
Excusez moi mais je crois que je me suis mal fait comprendre.
Pour ce genre de probleme, il y a 2 etapes.
La 1ere c'est qu'il faut trier le fichier VILLES sur le nom des villes, là pas de probleme.
Mais la 2e etape c'est qu'a partir de ce fichier trié il faut ecrire tous les enregistrements en double ou triple ou plus dans la feuille resultat et c'est cela qui me pose probleme car les macros et moi ca fait 2
En fait il faut lire le fichier du debut a la fin et a chaque fois que l'on trouve les memes noms de ville il faut aller ecrire les enregistrements correspondants dans la feuille resultat
Ca parait simple mais le faire c'est autre chose...
Je compte donc sur votre savoir faire en excel.
Cordialement
 

MJ13

XLDnaute Barbatruc
Re : lister les villes de meme nom a partir d'une base de données

Re, Bonjour Job

Sinon, macro à tester, j'ai mis que le nom pour le reste, il suffit d'utiliser l'offset:

Code:
Sub test()
n = 1
For Each cell In Range("A2:A65536")
If WorksheetFunction.CountIf(Range("A2:A65536"), cell) > 1 Then Sheets(2).Cells(n, 1) = cell: n = n + 1
Next
End Sub
 

matou59

XLDnaute Junior
Re : lister les villes de meme nom a partir d'une base de données

comme je disais les macros et moi ca fait 2 ce qui veut dire que je suis un novice dans ce domaine.
Donc c'est tres gentil de votre part de bien vouloir m'aider mais il me faut un peu plus d'explications.
Je me répéte mais ce que je voudrais c'est que lorsque je suis dans la feuille VILLES je lance une macro et le resultat doit se trouver dans la feuille RESULTAT.
Est ce clair ?
merci encore
 

job75

XLDnaute Barbatruc
Re : lister les villes de meme nom a partir d'une base de données

Re,

Bon, il faut se rendre à l'évidence et insérer la ligne 3 :

Code:
Sub VillesDoublons()
With Sheets("RESULTAT")
  Application.ScreenUpdating = False
  Sheets("VILLES").Cells.Copy .Cells
  .[A2:F65536].Sort Key1:=.[A2], Order1:=xlAscending, Header:=xlYes 'tri sur les noms
  .[3:3].Insert 'insertion de ligne nécessaire...
  .[G3].Formula = "=AND($A3<>$A2,$A3<>$A4)"
  .[H3] = True
  .[A2:F65536].AdvancedFilter xlFilterInPlace, CriteriaRange:=.[G2:G3]
  .[A3:F65536].SpecialCells(xlCellTypeVisible).Delete xlUp
  .[A2:F65536].AdvancedFilter xlFilterInPlace, CriteriaRange:=.[H2:H3]
  .[G3:H3].ClearContents
  .[3:3].Delete
  .Activate
End With
End Sub

Fichier joint.

Edit : @ Michel : où as-tu vu qu'il fallait supprimer les doublons :confused:

A+
 

Pièces jointes

  • VILLES(1).zip
    16.2 KB · Affichages: 54
  • VILLES(1).zip
    16.2 KB · Affichages: 51
  • VILLES(1).zip
    16.2 KB · Affichages: 65
Dernière édition:

matou59

XLDnaute Junior
Re : lister les villes de meme nom a partir d'une base de données

merci la macro marche tres bien mais que dois je rajouter dans la macro pour que j'ai aussi le nom du departement,le chef lieu et la region ?
excusez moi mais si suis tres ignorant en macro (faut que j'essaie de comprendreun peu comment ca marche !!! )

Merci aussi a job75 mais lorsque je lance la macro il y a 2 villes qui ne devraient pas se trouver dans la feuille resultat (ce sont les 2 dernieres de la liste VILLES)
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : lister les villes de meme nom a partir d'une base de données

Re

On aurait pu complèter la ligne de if worksheet avec offset 2 à 6.

Sinon plus simple suivant le nombre de colonnes à adapter en remplaçant par ce code:

Il faudra aussi tester le code de Job qui doit être plus rapide et que je salue :).

Code:
Sub Test_Trouve_Doublons()
n = 1
For Each cell In Range("A2:A65536")
If WorksheetFunction.CountIf(Range("A2:A65536"), cell) > 1 Then Sheets(2).Cells(n, 1) = cell: GoTo suite
suite2:
Next
End
suite:
For COLONNE = 2 To 6
Sheets(2).Cells(n, COLONNE) = cell.Offset(0, COLONNE - 1)
Next
n = n + 1
GoTo suite2
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : lister les villes de meme nom a partir d'une base de données

Re,

Merci aussi a job75 mais lorsque je lance la macro il y a 2 villes qui ne devraient pas se trouver dans la feuille resultat (ce sont les 2 dernieres de la liste VILLES)

Je ne comprends pas, dans la feuille RESULTAT j'obtiens ces villes, et uniquement ces villes, en colonne A :

VILLES
ARANDAS
ARANDAS
ARANDAS
AUTREVILLE
AUTREVILLE

Qu'est-ce qui ne vous convient pas ???

A+
 

matou59

XLDnaute Junior
Re : lister les villes de meme nom a partir d'une base de données

merci job75

oui en effet lorsque je lance votre macro j'obtiens bien les 5 villes mais j'ai aussi es 2 dernieres de la liste VILLES qui s'affichent
la ville dela ligne 39 et celle de la 40
Pas grave le plus gros est fait...merci encore
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16