Déconcatener une structure variable

  • Initiateur de la discussion Stéphane79
  • Date de début
S

Stéphane79

Guest
Bonjour à tous,

J'ignore comment déconcatener un code (numérique)de son libellé sachant que le code n'a pas de structure fixe.

Exemples : 52025 - Tartempion ou 222 - Durant

Je souhaiterais extraine le code numérique dans une colonne et le libellé dans une autre. Le trait d'union est toujours présent entre les deux.

Merci d'avance pour votre aide.

Stéphane79
 

porcinet82

XLDnaute Barbatruc
Salut Stephane79,

Je pense que certains t'apporterons une réponse sans macro mais je te donne quand meme un petit bout de code qui fonctionne selon quelques conditions (tes données de départ sont dans la colonne A, le code numérique sera en colonne B, le libellé dans la colonne C, et tu dois avoir un espace suivi de 2 autres caractères entre le code numérique et le libellé).

Code:
Sub test()
Dim i As Integer

For i = 1 To Range('A65536').End(xlUp).Row
    Cells(i, 2).Value = Left(Cells(i, 1).Value, InStr(1, Cells(i, 1).Value, ' '))
    Cells(i, 3).Value = Mid(Cells(i, 1).Value, InStr(1, Cells(i, 1).Value, ' ') + 3, Len(Cells(i, 1).Value))
Next i
End Sub

Je ne sais pas si j'ai été clair??? :silly:

@+
 

KIM

XLDnaute Accro
Bonjour Tout le monde,
J'ai eu le meme souci,
ci-dessous l'exemple que m'a envoyé mon ami JeanMarie (ChTi160).
Cel.value pour l'exemple cela représente la chaine de caractères à traiter

Sub test()
Dim Cel As Range
'voir aide VBA pour Mid et InStr
'ici on recherche la possition de '-' en partant du premier caractere de la valeur de la cellule _
on récupère ce qu'il y a devant '-' d'ou le -1
PremierePartie = Code:
Mid(cel.Value, 1, InStr(1, cel.Value, '-') - 1)

'ici à partir de la possition de '-' +1 on récupère ce qu'il y a après
DeuxiemePartie = Code:
Mid(cel.Value, InStr(1, cel.Value, '-') + 1)

End Sub

Cordialement
KIM
 

Discussions similaires

Statistiques des forums

Discussions
312 681
Messages
2 090 877
Membres
104 681
dernier inscrit
Gtcheumawe