Changement d'une chaine de caractère en tableau [Résolu/Fermé]

Signaler
Messages postés
1
Date d'inscription
mercredi 17 avril 2013
Statut
Membre
Dernière intervention
17 avril 2013
-
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
-
Bonjour,

Je veux savoir la possibilité de transformer une chaine de caractère qui contient plusieurs numéros avec un séparateur identique (Exp "/ ") en plusieurs cellules qui contiennent les numéros qui existent dans la chaine d'origine.
Exp : Transformer la cellule A1 : 567/899/98/365 en B1: 567,B2: 899, B3: 98 et B4: 365

Merci en avance pour votre collaboration.

1 réponse

Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 621
Bonjour,

En VBA, pour scinder une chaîne de caractères (567/899/98/365) en fonction d'un délimiteur ("/"), on utilise la fonction Split.

Voici, pour toi, une fonction personnalisée, qui réalise ce que tu souhaites :
Function Convertir(Cel As Range, num As Integer)
Dim NbreDelimiteur As Byte, Delimiteur As String

Delimiteur = "/"
NbreDelimiteur = Len(Cel.Value) - Len(Replace(Cel.Value, Delimiteur, ""))
If NbreDelimiteur < num - 1 Then
    Convertir = ""
Else
    Convertir = Split(Cel, Delimiteur)(num - 1)
End If
End Function


Utilisation :
en A1 saisir 567/899/98/365
en B1 saisir la formule : =Convertir(A$1;LIGNE())
et "étirer" cette formule vers le bas de la colonne B.