RESOLU - convertir pour séparer des infos

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Pour mon travail, j'ai besoin de traiter les communes de France afin de déterminer des secteurs pour mes clients.

Je récupère sur un site des communes distantes jusqu'à 50 km d'une ville "centrale".

Voici l'info que je récupère (dans une seule cellule par ligne, voir le fichier joint):

ST ANDRE 5 KM 2123 HABITANTS
PALAU DEL VIDRE 5 KM 2004 HABITANTS
SOREDE 6 KM 2160 HABITANTS
COLLIOURE 7 KM 2726 HABITANTS
ELNE 7 KM 6262 HABITANTS
ST CYPRIEN PLAGE 8 KM 0 HABITANTS
LATOUR BAS ELNE 8 KM 1346 HABITANTS
ST CYPRIEN 8 KM 6892 HABITANTS
ORTAFFA 8 KM 803 HABITANTS
LAROQUE DES ALBERES 8 KM 1508 HABITANTS
PORT VENDRES 9 KM 5370 HABITANTS

Mon besoin est de séparer pour ne garder dans une seule cellule uniquement le nom de la ville.

Avec la fonction excel "convertir", j'ai essayé toutes les possibilités sans y parvenir ...

J'ai fait des recherche sur le net et je n'ai pas trouvé.

Encore besoin de vous pour m'aider

Peut-être une possibilité avec "convertir" que je n'ai pas vu ?
Peut-être une macro VBA et je suis toujours aussi nul, enfin un peu moins grâce à vous mais encore trop limité dans mes connaissances.

Un grand merci par avance pour votre gentillesse et votre expertise.
Amicalement,
Lionel,
 

Pièces jointes

  • SecteursProspection test1.xlsm
    70.2 KB · Affichages: 26
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : convertir pour séparer des infos

Bonjour à tous

brut de décoffrage
Code:
Sub Macro1()
'
' Macro2 Macro
' Macro enregistrée le 27/08/2014
'

'
    Selection.Replace What:=" KM ", Replacement:="$", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="$", FieldInfo:=Array(Array(1, 1), Array(2, 9)), TrailingMinusNumbers:=True
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],LEN(RC[-1])-2)"
    Range("B1").Select
    Selection.AutoFill Destination:=Range("B1:B11"), Type:=xlFillDefault
    Range("B1:B11").Select
End Sub

Macro qui correspond aux étapes manuelles suivantes:
1) Édition/Remplacer ESPACEKMESPACE par $
2) Données/Convertir avec comme séparateur $
3) utilisation de cette formule dans la colonne adjacente :=GAUCHE(A1;NBCAR(A1)-2)
 

Juls

XLDnaute Junior
Re : convertir pour séparer des infos

Oui j'y avais pensé aussi, les deux sont possible, seulement le SUPPRESPACE est nécessaire pour toutes les villes à plus de 9km car il y a un caractère en plus, pour les manip suivantes ça peut poser problème ;)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : convertir pour séparer des infos

Bonjour à tous,

Toujours égaux à vous-mêmes LOL
Un grand merci pour vos réponses.

je vais voir tout ça et je vous réponds.

Pour ceux qui auraient besoin de la liste complète des villes avec les codes postaux, j'ai un fichier complet que je peux vous transmettre ..... c'est le moins que je puisse faire :)

dans ce classeur excel, j'y ai passé du temps à tout télécharger et à tout positionner dans deux feuilles :
1 - toutes les communes dans deux colonnes (38000 lignes environ) nom de la ville et son code postal
2 - par départements sur deux colonnes nom de la ville et son code postal

Classeur trop important pour être déposer sur le forum.

Sur transmission de votre adresse mail, je vous l'enverrai.
Amicalement,
Lionel,
 

Statistiques des forums

Discussions
312 489
Messages
2 088 853
Membres
103 975
dernier inscrit
denry