Déconcatener une structure variable

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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:

@+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
  • Question Question
Réponses
2
Affichages
7 K
A
Réponses
5
Affichages
5 K
A
E
Réponses
2
Affichages
641
Etxezarreta
E
S
Réponses
0
Affichages
719
S
V
Réponses
2
Affichages
2 K
vynmarius
V
Retour