John a une feuille de calcul qui, dans la colonne A, contient un grand nombre de chaînes de texte très longues. Il doit extraire individuellement les 249 premiers caractères de chaque chaîne, en plaçant un seul caractère dans chaque cellule à droite de la chaîne.

Vous pouvez accomplir cette tâche de plusieurs manières. C’est assez facile à faire grâce à l’utilisation d’une formule simple. Par exemple, si votre première chaîne de texte est dans la cellule A1, placez la formule suivante à sa droite, dans la cellule B1:

=MID($A1,COLUMN()-1,1)

Cette formule utilise des fonctions de feuille de calcul Excel pour séparer la chaîne de texte. La fonction COLUMN, dans ce cas, renvoie la valeur 2 puisque la formule est dans la colonne B et qui est la deuxième colonne de la feuille de calcul.

Cette valeur est décrémentée de 1, puis utilisée comme pointeur dans la chaîne de la cellule A1, marquant la provenance du caractère extrait. Lorsque vous copiez cette formule à droite, pour le nombre de cellules souhaité, vous vous retrouvez avec des caractères individuels de la chaîne, dans un ordre consécutif.

Bien sûr, si vous avez pas mal de chaînes dans la feuille de calcul (comme le fait John), alors copier cette formule sur 249 colonnes et vers le bas, disons, plusieurs centaines de lignes peut entraîner une feuille de calcul très lente. Dans de telles situations, il peut être souhaitable d’utiliser une macro pour séparer les chaînes au lieu d’une formule. La macro suivante, SplitUp, est une approche pour faire le déchirement.

Sub SplitUp()

Dim c As Range     Dim r As Range     Dim sTemp As String     Dim z As Integer

Set r = Range("A1", Range("A65536").End(xlUp))

For Each c In r         sTemp = Left(c, 249)

For z = 1 To Len(sTemp)

c.Offset(0, z) = Mid(sTemp, z, 1)

Next z     Next End Sub

La macro commence par définir une plage (r) composée de toutes les cellules de la colonne A contenant des valeurs. La variable c est ensuite utilisée pour représenter chaque cellule de la plage et les 249 premiers caractères extraits de chaque cellule. Une boucle For …​ Next est ensuite utilisée pour extraire chaque caractère de la chaîne et le placer dans une cellule à droite de la chaîne.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (2790) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Pulling_Apart_Characters_in_a_Long_String [Séparation des caractères dans une longue chaîne].