Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

extraire caractere delimites par /

  • Initiateur de la discussion Initiateur de la discussion anna
  • 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 !

A

anna

Guest
Re bonjour le forum
c un peu plus complique cette fois mais voila comment extraire les caractere qui sont dans une chaine a longeur differente selon les champ et qui sant delimite par des /
exemple
colonne A
CCL/830/LTA
CCL/8301/LTA/MMA
CCL/830/LTA
CCL/8206

le resultat sera
colonne A
830
8301
830
8206


Merci d'avance a tous ceux qui m aideront (les autre aussi 😉 )
 
Re bonjour
Oui excuse moi j aii pas preciser
Macro
Oui toujour 3 lettre au debut
et ca peut arrive qu il n y a pas de / a la fin comme la dernier ligne mais c rare et dans ce cas on peut faire un right (cells(i,j),4)
suis je claire?
Merci bcq
Anna
 
Bonjour,

ca ca devrait marcher :

Private Sub CommandButton1_Click()
Dim X, slash1, slash2 As Integer
Dim ChaineRetour As String
Do While ActiveCell.Text <> ''
slash1 = InStr(ActiveCell.Text, '/')
slash2 = InStr(slash1 + 1, ActiveCell.Text, '/')
If slash2 = 0 Then slash2 = Len(ActiveCell.Text)
ChaineRetour = Mid(ActiveCell.Text, slash1 + 1, slash2 - slash1 - 1)
ActiveCell.Value = ChaineRetour
ActiveCell.Offset(1, 0).Activate
Loop
End Sub

sans trop de garantie.... (pas trop de temps pour tester, là)


++

edit : oops , mode d'emploi : coller le code sur un bouton, se placer dans la premiere cellule de la colonne et cliquer. Ca descend tant que ca trouve des valeurs

Message édité par: 2passage, à: 10/06/2005 16:27
 
Hello all,

Voici un exemple en PJ

++

Creepy

EDIT : Avec la PJ c'est mieux !! 😛 [file name=classeur1_20050610163255.zip size=9314]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/classeur1_20050610163255.zip[/file]

Message édité par: Creepy, à: 10/06/2005 16:32
 

Pièces jointes

Bonjour Anna, Ândré, Creepy, 2passage, le Forum

Uniquement si Anna est au moins sous Excel 2000 (Car la Function Split ne passera pas sous Excel 97), voici un autre approche :


Sinon sous Excel 97, il faudra donc jongler comme Creepy et 2passage entre les fonctions 'Instr' et 'Mid'

Bon Après Midi
@+Thierry
 
Voici la fonction à coller dans un module, après tu insères la fonction personalisée 'monnombre' sous excel en choisissant la cellule qui contient le texte:

Ca marche pour tes 4 exemples après adapte un peu! 🙂

Function monnombre(montexte)
'Dim montexte
Dim i
Dim Malettre
Dim first_
Dim second_
Dim mystart
Dim myend

'Dim monnombre
i = 1
'montexte = Range('A1').Value

Do Until Malettre = '/'
Malettre = Mid(montexte, i, 1)
If Malettre <> '/' Then
i = i + 1
ElseIf Malettre = '/' Then
first_ = i
End If
Loop


i = i + 1
Malettre = Mid(montexte, i, 1)
Do Until Malettre = '/' Or i = 15
Malettre = Mid(montexte, i, 1)
If Malettre <> '/' Then
i = i + 1
ElseIf Malettre = '/' Then
second_ = i
End If
Loop


If i = 15 Then
myend = '15'
ElseIf i <> 15 Then
myend = second_ - first_ - 1
End If
mystart = first_ + 1

monnombre = Mid(montexte, mystart, myend)

'Variable = MsgBox(monnombre, 48, rien)
End Function


A+ et que le meilleur l'emporte, merci de dire quelle méthode tu retiens et pourquoi, histoire d'aprendre des choses
🙂
 
Bonjour Jerome, re le Fil

Je ne suis pas à 100% d'accord avec toi. En effet contrairement aux apparences, le code de Creepy containt une faille, si jamais la chaine de caractères de la première fraction est différente de 4 digits...

Exemple :
CCL/830/LTA
CL/8301/LTA/MMA
CAAAL/8204

Retournera :
830
301
L

Alors que le code de 2ePassage le gère bien. Quand à la fonction, Split, elle ne se soucit absolument pas du nombre de digits, ni avant, ni après, ni pendant !!! lol

Bon Après Midi
@+Thierry
 
Bonjout a tous

Je suis d'accord avec _Thierry. En passant _Thierry, se pourrait-il que le IF ne serait pas nécessaire ? Genre ceci pourrait faire l'affaire aussi ?



Code:
For Each Cell In Plage
        Container = Split(Cell, Chr(47))
        Cell = Container(UBound(Container))
    Next Cell
 
Bonjour les amis, le Forum

Et oui, en effet Anna a bien écrit en réponse à mon ami Ândré, qu'il y avait 'Oui toujour 3 lettre au debut', bien qu'elle ait précisé dans son tout premier Post 'qui sont dans une chaine à longeur differente selon les champs'

Donc Creepy tu n'es pas du tout 'mauvais' dans ta proposition, mais en tant que développeur, je te donnerais un conseil tout simple :

Si la demande de l'utilisateur consiste par exemple :
'J'aurai besoin d'un traitement sur une centaine de codifications'
=> si on ne peut pas traîter directement 'l'infini' Prévoir minimum 1000 'Keys'
'J'aurai que trois lettre au début'
=> si on ne peut pas traîter directement tous les cas de figures, prévoir une gestion d'anomalie(s) dans le traitement.


Pour Hellboy, oui on peut directement placer la Function Split sans gestion d'erreur, mais par contre le retour du 'Ubound' de ce tableau est fondamentalement faux par rapport à la demande d'Anna, regarde ceci :

CCL/8206
CCL/8301/LTA/MMA
CCL/830/LTA
CCL/83023/LTA
CCL/82032

Retour par Cell = Container(UBound(Container))
8206
MMA
LTA
LTA
82032

Ce qui n'est pas le résultat attendu...

Pour conclure, voilà ce que je propose, toujours avec Split, (donc à partir d'Excel 2000, only)


Comme ceci, Anna devrait pouvoir être tranquille... Au fait où est Anna ?

Bon Week End
@+Thierry
 
Salut à vous,

Pour ceux que cela pourrait intéresser, voici une formule qui répond à la demande :

=STXT(A1;CHERCHE('/';A1;1)+1;CHERCHE('/';A1&'/';CHERCHE('/';A1;1)+1)-CHERCHE('/';A1;1)-1)

Il a été tenu compte de la remarque (oh combien justifiée, de mon ami Thierry) : le nombre de lettres avant le premier / n'a aucune importance.

Ândré.
 
- 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

Réponses
9
Affichages
365
W
A
Réponses
10
Affichages
2 K
A
H
Réponses
14
Affichages
2 K
hyourinmaruzcdc
H
A
Réponses
0
Affichages
8 K
Arpopa
A
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…