WILFRIED
XLDnaute Impliqué
bonjour,
Voila mon problème :
Je désire récupérer la partie texte d'une cellule donnée en vba.
J'ai fait une recherche dans l'aide et dans le forum, j'ai trouvé la fonction stxt mais elle nécessite de connaitre l'emplacement exact de la partie du texte.
J'ai pensé à la lourde méthode de INSTR en recherchant la partie numérique, puis en utilisant la méthode mid... Mais cela risque d'alourdir fortement la macro. Je me demandai s'il n'y avait pas une méthode plus simple car au final une fois la partie texte extraite, je la compare à une BD, et si elle est trouvé j'execute une autre macro. Le tous pour de nombreuse céllule donc même en désactivent le rafraichissement d'écran cela risque d'être lourd à gérer.
Merci d'avance pour vos lumière.
A+
PS: voici la méthode que j'ai trouvé :
Sub test()
Dim test As String
Dim car As String
Dim y As Integer
Range("B14").Select
y = 1
car = Mid(ActiveCell.Value, y, 1)
test = ""
Do Until y > Len(ActiveCell.Value)
If IsNumeric(car) = False Then
If car <> "-" And car <> "/" Then
test = test & car
End If
End If
y = y + 1
car = Mid(ActiveCell.Value, y, 1)
Loop
If Left(test, 1) = " " Then
test = Right(test, Len(test) - 1)
End If
end sub
Voila mon problème :
Je désire récupérer la partie texte d'une cellule donnée en vba.
J'ai fait une recherche dans l'aide et dans le forum, j'ai trouvé la fonction stxt mais elle nécessite de connaitre l'emplacement exact de la partie du texte.
J'ai pensé à la lourde méthode de INSTR en recherchant la partie numérique, puis en utilisant la méthode mid... Mais cela risque d'alourdir fortement la macro. Je me demandai s'il n'y avait pas une méthode plus simple car au final une fois la partie texte extraite, je la compare à une BD, et si elle est trouvé j'execute une autre macro. Le tous pour de nombreuse céllule donc même en désactivent le rafraichissement d'écran cela risque d'être lourd à gérer.
Merci d'avance pour vos lumière.
A+
PS: voici la méthode que j'ai trouvé :
Sub test()
Dim test As String
Dim car As String
Dim y As Integer
Range("B14").Select
y = 1
car = Mid(ActiveCell.Value, y, 1)
test = ""
Do Until y > Len(ActiveCell.Value)
If IsNumeric(car) = False Then
If car <> "-" And car <> "/" Then
test = test & car
End If
End If
y = y + 1
car = Mid(ActiveCell.Value, y, 1)
Loop
If Left(test, 1) = " " Then
test = Right(test, Len(test) - 1)
End If
end sub
Dernière édition: