"défusionner" les éléments d'1 cellule e

Fermé
ermelinda31 - 8 juil. 2008 à 18:10
 herve62 - 4 mars 2009 à 15:47
Bonjour,

J'ai un gros fichier excel d'adresses de contacts répertoriés de la manière suivante : colonne titre colonne nom colonne prénom et la colonne adresse comporte tous les éléments (CP, Ville).
Je souhaite dissocier les éléments CP Ville pour les mettre automatiquement dans une colonne séparée du reste de l'adresse.
à part le faire manuellement (et cela va me prendre des heures), je suis certaine qu'il doit exister une formule bien spécifique sur excel pour réaliser cette opération de façon automatique et plus rapide!
quelqu'un d'expert sur excel peut-il m'aider? en plus c'est urgent c'est pour le boulot!!
merci par avance pour votre aide - précieuse :-)
A voir également:

8 réponses

Raymond PENTIER Messages postés 58714 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 3 novembre 2024 17 227
4 mars 2009 à 15:38
... sauf si en A2 au lieu de DUPONT JACQUES on avait LE METAYER DE GAYAC CHARLES ANTOINE !

Au post 3 il est précisé "je souhaite dissocier les éléments d'une cellule en trois colonnes distinctes : composants de l'adresse, cp, et ville à partir d'une cellule ou j'ai ces trois éléments réunis - avec de surcroît - un retour à la ligne".

Mais à part ça, ton explication est claire et efficace ...
2
Bonjour,

Essaie d'aller voir sur ce site, je n'ai par contre pas tester....

https://www.excel-downloads.com/threads/dissocier-les-cellules-au-niveau-dun-espace.45737/
0
Bonjour,
Merci encore pour le lien, je vais m'y pencher et donner un retour très prochainement...
Sandra
0
Raymond PENTIER Messages postés 58714 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 3 novembre 2024 17 227
8 juil. 2008 à 19:34
Si chaque cellule de la colonne D:D "CP+Adresse" est composée de 5 caractères pour le code postal et un espace avant l'adresse, c'est que celle-ci commence au 7ème rang.
Par conséquent la formule en colonne E:E sera =GAUCHE(D:D;5)
et en colonne F:F ce sera =STXT(D:D;7;99)
0
MERCI MERCI beaucoup pour votre aide et pour la formule elle fonctionne super bien mais simplement pour dissocier le code postal et la ville situés dans une même cellule initialement... je garde cependant cette formule en mémoire, bien utiles pour modifier d'autres fichiers....

Je me suis peut-être mal exprimée mais je souhaite dissocier les éléments d'une cellule en trois colonnes distinctes : composants de l'adresse, cp, et ville à partir d'une cellule ou j'ai ces trois éléments réunis - avec de surcroît - un retour à la ligne!

c'est peut-être trop complexe pour que le logiciel arrive à comprendre cette requête, mais on ne sait jamais je relance la recherche !!! après tout ces logiciels ne sont utilisés dans la vie quotidienne qu'à un millième de leurs capacités!!!

merci en tous cas, et bonne retraite aux Antilles, chanceux ;-)

Sandra
0
Raymond PENTIER Messages postés 58714 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 3 novembre 2024 17 227 > ermelinda31
9 juil. 2008 à 14:04
Sandra (un prénom que j'aime bien ...)

Bonjour, et désolé, j'avais mal compris ton exposé :
"la colonne adresse comporte tous les éléments (CP, Ville)" signifiait que la colonne "Adresse" comportait aussi le CP et le nom de la ville, et moi j'ai interprété ne comportait que le CP et la ville.
Du coup ça devient beaucoup plus difficile, sans macro ! Et quasiment impossible, avec un retour à la ligne ! Mais heureusement, eriiic était là ...
Pourrais-tu me faire voir 2 ou 3 lignes de ton fichier, pour que je puisse quand même tenter de trouver une formule ?

Cordialement.
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 238
9 juil. 2008 à 11:47
Bonjour,

Voici une fonction personnalisée à coller dans un module qui te donne la position de la 1ère chaine de 5 chiffres consécutifs (ou 0 si inexistante) :
Function posCP(cel As Range)
    Dim i As Long, j As Long
    For i = 1 To Len(cel)
        If Mid(cel, i, 1) >= "0" And Mid(cel, i, 1) <= 9 Then
            j = j + 1
        Else
            j = 0
        End If
        If j = 5 Then Exit For
    Next i
    If j <> 5 Then i = 4
    posCP = i - 4
End Function


A partir de là tu peux extraire tes 3 éléments de l'adresse :
n° et voie : =GAUCHE(A1;posCP(A1)-1)
Code postal : =STXT(A1;posCP(A1);5)
Commune : =STXT(A1;posCP(A1)+6;50)

eric
0

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

Posez votre question
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 238
9 juil. 2008 à 12:01
et une autre qui te retourne la partie de l'adresse qui t'interesse :
Function adr(cel As Range, partie As Integer)
    Dim i As Long, j As Long, rep As String
    For i = 1 To Len(cel)
        If Mid(cel, i, 1) >= "0" And Mid(cel, i, 1) <= 9 Then
            j = j + 1
        Else
            j = 0
        End If
        If j = 5 Then Exit For
    Next i
    If j <> 5 Then i = 4
    i = i - 4
    If i = 0 Then
        rep = cel.Value
    Else
        Select Case partie
        Case 1
            rep = Left(cel, i - 1)
        Case 2
            rep = Mid(cel, i, 5)
        Case 3
            rep = Mid(cel, i + 6)
        End Select
    End If
    adr = rep
End Function

n° et voie : =adr(A1,1)
Code postal : =adr(A1,2)
Commune : =adr(A1,3)

Si pas de code postal valide l'adresse est retournée intégralement dans les 3 cas.
eric
0
Euh... Et avec l'option "convertir" (données/convertir) simplement ça ne fonctionne pas ?
0
Raymond PENTIER Messages postés 58714 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 3 novembre 2024 17 227
4 mars 2009 à 13:34
Depuis juillet 2008, une solution a certainement été trouvée ...
Mais si tu as une proposition avec "convertir", donne-la ; ça pourrait servir à quelqu'un d'autre !
0
Ptit exemple :

En a1 saisir NOM
En B1 saisir PRENOM

En A2 saisir DUPONT JACQUES
En A3 saisir DURAND MARCEL

Le but étant de séparer automatiquement les noms et prénoms de telle sorte que les prénoms s'inscrivent dans les cellules B2 et B3.

1) Sélectionner A2 et A3
2) Dans le menu cliquer sur Données/Convertir
3) Choisir "Délimité" puis "Suivant"
4) Comme les nom et prénom sont séparés par des espaces, décocher dans séparateurs "tabulations" et cocher "espace"
5) Cliquer sur suivant
6) Indiquer dans le format des données qu'il s'agit de texte en cochant la case correspondante
7) Et enfin "Terminé"

Normalement... C'est bon...
0
Tout à fait Raymond :d

Bonne journée.
0