J'ai un cellule avec une série de nombres comme celle-ci : " 22 35 18 65 2 224 " etc. J'aimerais que chacun de ces nombres apparaissent dans une cellule différente.
Je connais déjà l'outil Convertir présent dans le menu Données, mais celui-ci converti sur une ligne. Or mon problème est que j'ai plus de 256 nombres, et que il n'y a que 256 cellules sur une même ligne. Du coup, les derniers nombres passent à la trappe.
Je souhaiterais donc savoir s'il était possible de convertir de la même façon, mais cette fois sur une colonne, où le nombre de cellules disponibles est beaucoup plus important.
La discussion étant ouverte avec la mention initiale [XL2003], il n'y a pas lieu de s'inquiéter d'autres versions d'Excel. Ceci dit, j'aimerais bien que notre ami ne se contente pas d'un laconique "ça marche pas", mais prenne la peine de se fendre d'une exécution pas à pas et dise sur quelle instruction faillit la procédure. À défaut, qu'il dépose un fichier avec des exemples de données récalcitrantes.
ROGER2327 #4728
Jeudi 12 Sable 138 (Sainte Choupe, mère de famille, SQ) 22 Frimaire An CCXIX 2010-W49-7T00:02:49Z
Pour info: testées sous 2007, toutes les macros proposées fonctionnent, avec ou sans chr(160)... La seule incompatibilité de type que j'aie obtenu a eu lieu quand "ActiveCell" était vide.
Pour info: testées sous 2007, toutes les macros proposées fonctionnent, avec ou sans chr(160)... La seule incompatibilité de type que j'aie obtenu a eu lieu quand "ActiveCell" était vide.
Exact !
Pour régler ce dernier problème, et compte tenu de tout ce qui a été dit plus haut, on peut finalement écrire :
Code:
Sub Convertit()
Dim s
s = Split(WorksheetFunction.Trim(Replace(ActiveCell.Text, Chr(160), " ")))
If UBound(s) > -1 Then ActiveCell.Resize(UBound(s) + 1).Value = WorksheetFunction.Transpose(s)
End Sub
ROGER2327 #4729
Jeudi 12 Sable 138 (Sainte Choupe, mère de famille, SQ) 22 Frimaire An CCXIX 2010-W49-7T14:37:45Z