CelluleVide
XLDnaute Occasionnel
Bonjour a tous,
J'essaies de me créer une fonction perso pour extraire une chaine de texte.
Exemple si j'ai en D3 "Piece de 240 x 600 mm" je veux sortir 240 ou 600 suivant l'info av (avant) ou Ap (apres).
J'ai d'abord ecrit la fonction qui marche avec l'enregistreur de macro:
=STXT(D3;TROUVE("x";D3;1)+1;4)
mais en VBA j'ai ensuite un message" sub ou fonction non défini sur le "Find".
Quelqu'un peut me dire pourquoi?
Public Function ChaineTxt(Celulle As Range, Caractère, AvAp As String, NbCar As Integer)
'Variables:
'Cellule: la cellule a lire
'Caractere: Le caractere a trouver
'AvAp: Prendre la chaine avant ou apres Le caractere
'NbCar: nombre de caractere a extraire:
If AvAp = "Av" Then ChaineTxt = Mid(Celulle, Find(Caractère, Celulle, 1)+1, NbCar)
Else
ChaineTxt = Mid(Celulle, Find(Caractère, Celulle, -(NbCar + 1)), NbCar)
End If
End Function
J'essaies de me créer une fonction perso pour extraire une chaine de texte.
Exemple si j'ai en D3 "Piece de 240 x 600 mm" je veux sortir 240 ou 600 suivant l'info av (avant) ou Ap (apres).
J'ai d'abord ecrit la fonction qui marche avec l'enregistreur de macro:
=STXT(D3;TROUVE("x";D3;1)+1;4)
mais en VBA j'ai ensuite un message" sub ou fonction non défini sur le "Find".
Quelqu'un peut me dire pourquoi?
Public Function ChaineTxt(Celulle As Range, Caractère, AvAp As String, NbCar As Integer)
'Variables:
'Cellule: la cellule a lire
'Caractere: Le caractere a trouver
'AvAp: Prendre la chaine avant ou apres Le caractere
'NbCar: nombre de caractere a extraire:
If AvAp = "Av" Then ChaineTxt = Mid(Celulle, Find(Caractère, Celulle, 1)+1, NbCar)
Else
ChaineTxt = Mid(Celulle, Find(Caractère, Celulle, -(NbCar + 1)), NbCar)
End If
End Function