extraire des caracteres

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

teodormircea

XLDnaute Occasionnel
Bonjour le forum

Pour extraire des caractères a partir d'une cellule j'utilise cette formule
Par ex :
si je veux extraire EN
ABD-EN-FINLAND

Code:
=MID(RC[-1],(FIND("-",RC[-1],1)+1),FIND("-",RC[-1],FIND("-",RC[-1],1)+1)-FIND("-",RC[-1],1)-1)

facile , je cherche une solution a appliquer par macros, il ya quelcun qui a une idee
 
Re : extraire des caracteres

Bonjour

EDITION : code précédent transformé en fonction VBA personnalisée
Code:
Function Mextract(z As Range, Optional Sep$, Optional Item As Long) As String
Mextract = IIf(Len(z) > 0, Split(z.Text, Sep)(Item), z)
End Function
Si en A1 : ABD-EN-FINLAND
En B1 : =Mextract($A$1;"-";0) --> ABD
En B2 : =Mextract($A$1;"-";1) --> EN
En B3: =Mextract($A$1;"-";2) ---> FINLAND


Code:
Sub ex()
Dim s$
s = "ABD-EN-FINLAND"
MsgBox Split(s, "-")(1)
End Sub
 
Dernière édition:
Re : extraire des caracteres

Bonjour,

dans le module 1 tu as créé une procédure nommée "SPLIT", Split est une fonction intégrée vba, tu ne peux donc pas l'utiliser comme nom de variable ou de procédure...

bon après midi
@+
 
Re : extraire des caracteres

Re


Tu ne réponds pas aux questions ?

C'est OK chez moi
Code:
Private Sub CommandButton1_Click()
Dim lastrow&, col&, i&
lastrow = Feuil1.[A65536].End(xlUp).Row
col = TextBox1.Value
For i = 2 To lastrow
TextBox2.Value = VBA.Split(Feuil1.Cells(i, col).Text, "-")(1)
Next i
End Sub
 
Dernière édition:
Re : extraire des caracteres

J'ai modife le code comme ceci mais j'ai une erreur , il dit que s est invalid

Code:
Private Sub CommandButton1_Click()
Dim lr&, col1&, col2&, i&, j&, s&
col1 = TextBox1
lr = ActiveSheet.Cells(Rows.Count, col1).End(xlUp).Row - 1


col2 = TextBox2
    For i = 2 To lr
        For j = 1 To 3
        If Me.Controls("OptionButton" & j) = True Then
    col2.Value = VBA.Split(s.Cells(i, col1).Text, "-")(Me.Controls("OptionButton" & j).TabIndex)
       
        End If
        Next j
    Next i
End Sub
 
- 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

Discussions similaires

Réponses
5
Affichages
1 K
  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
396
Réponses
4
Affichages
286
Retour