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.
Juste pour varier les plaisirs ... et sortir d'Excel: copier la cellule dans Word > Ctrl+H > rechercher [un_espace] > remplacer par ^p (marque de paragraphe) et re-copier-coller de Word vers Excel
Merci à tous ceux qui ont cherché. Pour les premières macro, ça marche en effet s'il n'y a qu'un espace entre les nombres. Seul soucis, c'est que j'en ai en fait 3 entre chaque. Je m'y connais assez peu en VBA, mais en remplaçant
, cela ne fonctionne pas.
(dans la macro de skoobi j'ai aussi essayer de remplacer le " " par " ", sans plus de résultats)
Il doit donc y avoir autre chose à remplacer, mais je ne trouve pas.
il me semble qu'en adaptant la macro de Skoobi en plaçant 3 espaces au lieu de 1, cela fonctionne :
Code:
Sub trans()
Dim List As Variant, Lig As Long
List = Split(Range("B1").Value, " ") ' 3 espaces entre les ""
List = Application.Transpose(List)
Lig = UBound(List, 1)
Range("A1:A" & Lig).Value = List
End Sub
Je pense que cela doit être la même chose pour les autres.
Concernant la formule de Tibo, elle fonctionne aussi correctement si elle est adaptée (mais je laisse à Tibo le soin de vérifier et de modifier si besoin ) :
Car par défaut le séparateur de Split est l'espace (ou Chr(32) )
cf ci-dessous l'extrait de l'aide de VBA
Facultatif. Caractère de chaîne utilisé pour identifier les limites de sous-chaîne. S'il est omis, le caractère espace (" ") est utilisé comme séparateur par défaut. Si l'argument delimiter est une chaîne de longueur nulle, un tableau à un élément contenant toute la chaîne expression est renvoyé.
Pour régler le problème des espaces consécutifs, une petite modification de la procédure de job75 :
Code:
[COLOR=DarkSlateGray][B]Sub Convertit()
Dim s
s = Split(WorksheetFunction.Trim(ActiveCell.Text), " ")
ActiveCell.Resize(UBound(s) + 1).Value = WorksheetFunction.Transpose(s)
End Sub[/B][/COLOR]
ROGER2327 #4712
Dimanche 8 Sable 138 (Conception du Père Ubu (AJ), SS) 18 Frimaire An CCXIX 2010-W49-3T23:35:27Z
Il y a peut-être des "espaces" de code 160 dans les données à convertir !!
Dans ce cas, les remplacer par des espaces "normaux" (code 32) :
Code:
Sub Convertit()
Dim s
s = Split(WorksheetFunction.Trim([COLOR="red"]Replace(ActiveCell.Text, Chr(160), " ") [/COLOR])," ")
ActiveCell.Resize(UBound(s) + 1).Value = WorksheetFunction.Transpose(s)
End Sub