[RESOLU] Scindé un code postal en 2 et garder le Département

CG2000

XLDnaute Occasionnel
Bonjour à tous,

Est-il possible de décortiquer dans plusieurs cellules d'une colonne (exemple en A) un code postal?
Exemp A1 : "41000" dans une cellule
pouvoir scindé ce code postal en 2 pour donner
cellule1 : 41
Cellule2 : 000
Exemp A2 : "75018" dans une cellule
pouvoir scindé ce code postal en 2 pour donner
cellule1 : 75
Cellule2 : 018
...

Si c'est possible je serai très satisfait. Cela m'éviterai de rajouter des colonnes et de rentrer toutes le données.
Avec mes remerciements anticipés,
Amicalement
 
Dernière édition:

Temjeh

XLDnaute Accro
Supporter XLD
Re : Scindé un code postal en 2

Bonjour

Un début
PS: Ce code met un apostrophe avant pour garder les zéro à la fin.

Code:
For i = 1 To Range("A65000").End(xlUp).Row
  Range("B" & i) = "'" & Left(Range("A" & i), 2)
  Range("C" & i) = "'" & Right(Range("A" & i), 3)
Next i

Ou

Dans format personnalisé
Colonne B: 00
Colonne C: 000
Code:
For i = 1 To Range("A65000").End(xlUp).Row
  Range("B" & i) = Left(Range("A" & i), 2)
  Range("C" & i) = Right(Range("A" & i), 3)
Next i


Temjeh
 
Dernière édition:

CG2000

XLDnaute Occasionnel
Re : Scindé un code postal en 2

Merci bien à tous,

Solutions bonnes, mais pas dans mon cas !
En effet lors de mes imports dans excel de mes informations, le tableur transcris

6300 au lieu de 06300 ce qui me donne avec vos reponses 63 300 au lieu de 6 300 ou 06 300
6600 au lieu de 06600 ce qui me donne avec vos reponses 66 600 au lieu de 6 600 ou 06 600
...

il faudrait qu'il y est en C les trois dernier chiffre et en B le reste.
Pour obtenir dans tous les cas un bon département :

75000 = 75 000
01000 = 01 000
1000 = 1 000

Merci par avance de votre aide.

CG2000
 

Pièces jointes

  • Classeur2.xls
    28 KB · Affichages: 59
  • Classeur2.xls
    28 KB · Affichages: 62
  • Classeur2.xls
    28 KB · Affichages: 65
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Scindé un code postal en 2

Bonjour CG2000,

Voir fichier joint. Les résultats sont de type texte (ça vaut mieux pour la Corse -> 2A et 2B)

Formule: =GAUCHE(A2;NBCAR(A2)-3) et =DROITE(A2;3)
 

Pièces jointes

  • Scindé un code postal en 2 v1.xls
    36 KB · Affichages: 43
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Scindé un code postal en 2

Bonsour®
salut
:confused:, la déclaration n'est valable pour la suite.
Code:
Sub Découpe()
  Dim R As Range
  For Each R In Range("A1", [A1000].End(xlUp))
    R(1, 2) = Left(R, 2)
    R(1, 3) = Right(R, 3)
    R(1, 3).NumberFormat = "000"
  Next
End Sub

Ouppsss...
oui Si...
Sub Découpe()
Dim R As Range
For Each R In Range("A1:a10000")
R=Application.trim(R)
R.Offset(0, 1) = Left(R, Len(R) - 3)
R.Offset(0, 1).NumberFormat = "00"
R.Offset(0, 2) = Right(R, 3)
R.Offset(0, 2).NumberFormat = "000"
Next
End Sub
:cool:
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Scindé un code postal en 2

re

selon mon habitude : sans utiliser Offset
Code:
Sub Découpe()
  Dim R As Range
  For Each R In Range("A1:A1000")
    R(1, 2) = Int(Val(R) / 1000)
    R(1, 2).NumberFormat = "00"
    R(1, 3) = Right(R, 3)
    R(1, 3).NumberFormat = "000"
  Next
End Sub

Il y aura quand même problème avec les codes spéciaux :p !
 

CG2000

XLDnaute Occasionnel
Re : Scindé un code postal en 2

Mercis à tous, et à chacun de votre intervention sur ce fil,

R@chid,Temjeh,Modeste geedee, Si..., mapomme,
les trois solutions suivantes vont me rendre un très grand service pour la gestion de mes fichiers:

Sub Découpe()
Dim R As Range
For Each R In Range("A1:A1000")
R(1, 2) = Int(Val(R) / 1000)
R(1, 2).NumberFormat = "00"
R(1, 3) = Right(R, 3)
R(1, 3).NumberFormat = "000"
Next
End Sub


=GAUCHE(A2;NBCAR(A2)-3) et =DROITE(A2;3)


=GAUCHE(TEXTE(A2;"00000");2)

Vous venez de me convaincre de grandes possibilités avec des formules.
Merci à tous

CG2000
 
Dernière édition:

CG2000

XLDnaute Occasionnel
Re : [RESOLU] Scindé un code postal en 2

Merci à tous, les amis d'excel-downloads.com;)

Le Post est RESOLU et je vous partage le résultat final.

Ayant besoin impérativement d'un code Vba je ne retiend pour l'instand que le code de SI...
Mais cela ne retire en rien la qualité des propositions de formules qui à eut le succès de m'intéresser aux formules et fonctions. Et qui devrait très bientot me servire.

Ci-joint le fichier exemple qui donne la solution à ce post.:p
Et bon week à tous.

CG2000
 

Pièces jointes

  • Classeur2.xls
    36.5 KB · Affichages: 56
  • Classeur2.xls
    36.5 KB · Affichages: 54
  • Classeur2.xls
    36.5 KB · Affichages: 56

Statistiques des forums

Discussions
311 720
Messages
2 081 896
Membres
101 833
dernier inscrit
sandra25