Bonjour à tous,
malgré quelques lectures, je bloque sur l'utilisation d'une fonction venant de la feuille de calcul:
WorksheetFunction.Find
quand le terme est trouvé, il n'y a pas de problème... seulement quand le terme n'est pas trouvé, la fonction WorksheetFunction.Find génère une erreur et je n'arrive pas à la shunter. Je suppose qu'il faut utiliser la formulation On Error Resume Next, mais je ne sais pas quoi en faire.
Pouvez-vous m'aider ?
question subsidiaire : existe-t'il une fonction dans VBA qui m'affranchisse de l'utilisation de la fonction WorksheetFunction.Find qui ne me semble pas très propre (à l'issue je dois l'utiliser avec des chaînes de 200 caractères sur un fichier de 75.000 lignes)
(j'ai joint un fichier avec la macro)
Merci beaucoup, et bon week-end !
Michel
malgré quelques lectures, je bloque sur l'utilisation d'une fonction venant de la feuille de calcul:
WorksheetFunction.Find
quand le terme est trouvé, il n'y a pas de problème... seulement quand le terme n'est pas trouvé, la fonction WorksheetFunction.Find génère une erreur et je n'arrive pas à la shunter. Je suppose qu'il faut utiliser la formulation On Error Resume Next, mais je ne sais pas quoi en faire.
Pouvez-vous m'aider ?
question subsidiaire : existe-t'il une fonction dans VBA qui m'affranchisse de l'utilisation de la fonction WorksheetFunction.Find qui ne me semble pas très propre (à l'issue je dois l'utiliser avec des chaînes de 200 caractères sur un fichier de 75.000 lignes)
(j'ai joint un fichier avec la macro)
Merci beaucoup, et bon week-end !
Michel
Code:
Sub bidouille()
Dim DansTexte, TexteCherche, Resultat As String
Dim Debut, Fin As Integer
' Entrée de la chaîne recherchée
TexteCherche = InputBox("Chaine : ", "Entrez la chaîne recherchée")
' Récupération de la chaîne de caractères dans laquelle la recherche s'opère
DansTexte = Cells(1, 1).Value
' position du début de la chaîne recherchée dans l'expression
Debut = WorksheetFunction.Find(TexteCherche, DansTexte)
' position de la fin du mot (premier espace suivant)
Fin = WorksheetFunction.Find(" ", DansTexte, Debut)
' extraction du mot
Resultat = Mid(DansTexte, Debut, Fin - Debut)
MsgBox ("-" & Resultat & "-")
End Sub