Problème excel séparation de cellule..

Fermé
diou - 14 avril 2010 à 16:24
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 14 avril 2010 à 18:25
Bonjour,

Je suis très ennuyé car j'ai une colonne d'adresse sous excel composé de chiffre et de lettre par exemple:

23 rue du pommier

Tout ça dans la même cellule et je ne trouve pas de code VBA ou de façon de séparer les chiffres des lettres en deux colonnes distinctes, j'ai essayé de faire convertir, mais cela ensuite me décompose mon adresse avec la lettre dans une colonne (super!) mais toute l'adresse est elle aussi séparé en 5colonne (mot par mot)

Bref que faire? Je suis desepéré j'ai 2500 lignes atraiter

par avance merci de votre aide

5 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
14 avril 2010 à 16:46
Bonjour,
Y a t'il toujours un espace après les "chiffres"?
0
oui il y a effectivement toujours un espace entre les chiffre et le texte qui suit
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
14 avril 2010 à 17:05
Alors essaye ceci :
Ta liste en colonne A le résultat en B et C :
Sub test()
Dim MonTableau() As String
Dim i, derlig, j As Integer
derlig = Range("A65536").End(xlUp).Row
For i = 1 To derlig
MonTableau = Split(Cells(i, 1), " ")
Cells(i, 2) = MonTableau(0)
For j = 1 To UBound(MonTableau)
Cells(i, 3) = Cells(i, 3) & " " & MonTableau(j)
Next j
Next i
End Sub
0
merci bcp !!

J'ai cependant quelques erreurs indépendante de ton code qui sont dû au fait que parfois il n'y a pas de numéro de rue et du coup c'est le mot "rue" ou "chemin" qui vient dans la colonne "B"
Si par hasard tu as le temps de me trouver une mini solution tu deviendrais pour moi un dieu vivant :D
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
Modifié par pijaku le 14/04/2010 à 18:31
Re-
Suffit d'ajouter un pitit test. En gras dans le code ci-dessous :
1- si pas de numéro ne mets rien en colonne B :
Sub test()  
Dim MonTableau() As String  
Dim i, derlig, j As Integer  
derlig = Range("A65536").End(xlUp).Row  
For i = 1 To derlig  
MonTableau = Split(Cells(i, 1), " ")  
If IsNumeric(MonTableau(0)) Then  
Cells(i, 2) = MonTableau(0)  
End If  
For j = 1 To UBound(MonTableau)  
Cells(i, 3) = Cells(i, 3) & " " & MonTableau(j)  
Next j  
Next i  
End Sub 

2- mets le premier mot en B et le reste en C :
Sub test() 
Dim MonTableau() As String 
Dim i, derlig, j As Integer 
derlig = Range("A65536").End(xlUp).Row 
For i = 1 To derlig 
MonTableau = Split(Cells(i, 1), " ") 
If IsNumeric(MonTableau(0)) Then 
Cells(i, 2) = MonTableau(0) 
Else 
Cells(i, 2) = MonTableau(0) 
For j = 1 To UBound(MonTableau) 
Cells(i, 3) = Cells(i, 3) & " " & MonTableau(j) 
Next j 
GoTo suite 
End IfFor j = 1 To UBound(MonTableau) 
Cells(i, 3) = Cells(i, 3) & " " & MonTableau(j) 
Next j 
suite: 
Next i 
End Sub

Et voilà, me voici devenu un dieu vivant.... Suffit de peu des fois!!
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
14 avril 2010 à 17:14
Bonjour tout le monde,

ou sans macro avec ton adresse en A1 :

1ère partie :
=GAUCHE(A1;CHERCHE(" ";A1)-1)
2nde partie :
=STXT(A1;CHERCHE(" ";A1)+1;100)

Terminer par un copier/collage spécial valeur pour ne garder que le résultat
eric
0

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

Posez votre question
tontong Messages postés 2568 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 12 janvier 2025 1 059
14 avril 2010 à 18:06
Bonsoir à tous,

On peut compléter la proposition d'eric avec une condition qui prend en compte l'absence de n°.
1ére partie =SI(ESTNUM(GAUCHE(A1;1)*1);GAUCHE(A1;CHERCHE(" ";A1)-1);"")
2nd partie =SI(ESTNUM(GAUCHE(A1;1)*1);STXT(A1;CHERCHE(" ";A1)+1;100);A1)

Ces formules fonctionnent avec des 23bis (sans espace) mais pas avec des 23 bis.
0