VBA XLTrouver Cellule avec Caractère
Résolu/Fermé
Roman
-
17 déc. 2010 à 01:02
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 17 déc. 2010 à 19:31
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 17 déc. 2010 à 19:31
A voir également:
- VBA XLTrouver Cellule avec Caractère
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Excel compter cellule couleur sans vba - Guide
- Excel cellule couleur si condition texte - Guide
1 réponse
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
17 déc. 2010 à 01:15
17 déc. 2010 à 01:15
Salut,
Ce serait pas dû au fait que Po peut être supérieur à la longueur de la chaîne de caractères Coco.Value ?
Fais au moins un test sur la longueur avec Len.
Utilise éventuellement InStr. Evite les .Find et .FindNext en privilégiant une boucle for passant sur toutes les cellules de la plage.
A+
Ce serait pas dû au fait que Po peut être supérieur à la longueur de la chaîne de caractères Coco.Value ?
Fais au moins un test sur la longueur avec Len.
Utilise éventuellement InStr. Evite les .Find et .FindNext en privilégiant une boucle for passant sur toutes les cellules de la plage.
A+
17 déc. 2010 à 13:00
Merci beaucoup pour ces conseils, ça marche et c'est le bonheur!
La longueur de la chaine n'est pas en question du coup pas besoin de faire le test avec Len.
Mais j'ai remplacé Mid par InStr et la combinaison de Find, FindNext et Do...Loop par For...Next, comme suit :
Function RechAdrChaiCar(Pd As Range, A As Variant, Po As Long) As Variant 'Pl=plage; A=Caractère recherché, Po=position de du caractère
Application.Volatile
Dim laPlage As Range
Dim Acel As Range
RechAdrChaiCar = 0
Set laPlage = Worksheets(1).Range(Pd.Address)
For Each Acel In laPlage
If InStr(Po, Acel, A, vbTextCompare) = Po Then
RechAdrChaiCar = Acel.Address
Exit Function
Else
RechAdrChaiCar = "nixda"
End If
Next
End Function
Merci encore!
Roman
17 déc. 2010 à 19:31
C'est un plaisir d'aider les personnes persévérantes, claires dans leur question et qui font profiter à tous de la solution trouvée.
A+