[méthode Find] Trouver texte avec caractère spécial

Dolichotis

XLDnaute Occasionnel
Bonjour au forum,

Voilà tout est dans le titre :

comment faire pour trouver un texte dans une feuille contenant un caractère spécial (exemple : caractère grec lambda λ) avec la méthode Find ?
Je n'arrive pas à copier coller ce caractère dans le code... Y a-t-il un moyen de contourner ce problème ?

Merci pour vos solutions, bonne soirée à tous.
 

Banzai64

XLDnaute Accro
Re : [méthode Find] Trouver texte avec caractère spécial

Bonjour au forum

Une idée

Utilisation de After
Code:
Sub test()
With Worksheets(1).Range("a1:a11")
    Set c = .Find(5, after:=Range("A11"), LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
          Debug.Print c.Address
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

End Sub

il suffit de préciser la dernière cellule de la plage

je viens d'essayer sur 2003 et c'est Ok
 

JNP

XLDnaute Barbatruc
Re : [méthode Find] Trouver texte avec caractère spécial

Re :),
Oui, effectivement, After devrait fonctionner en utilisant la dernière cellule en bas à droite.
Sinon, j'avais préparé une solution "bourrin" ;)...
Code:
Sub test()
If Sheets("Feuil1").Range("A1") = ChrW(955) Then MsgBox "Le caractère lambda est situé en $A$1" & Chr(10) & "Son code Unicode est 955"
Set c = Sheets("Feuil1").Cells.Find(ChrW(955), LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If Not c Is Nothing Then
firstAddress = c.Address
    Do
      If c.Address <> "$A$1" Then MsgBox "Le caractère lambda est situé en " & c.Address & Chr(10) & "Son code Unicode est " & AscW(c)
      Set c = Sheets("Feuil1").Cells.FindNext(c)
    Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End Sub
Mais After est plus élégant :D.
Bonne soirée :cool:
 

cibleo

XLDnaute Impliqué
Re JNP, bonsoir Banzaï64 :)

Un peu long à vous répondre, je commençais à m'arracher les cheveux avec la syntaxe de l'argument nommé after.

Ça fonctionnait avec les fichiers de PierreJean et Fo_rum mais pas avec mon fichier.

Donc merci Banzaï
Je pense avoir trouvé pour mon cas comme ceci :

Code:
DerLiS = .Range("A65536").End(xlUp).Row
.../...
With plage
      Set cel = .Find(VSearch, after:=Range("B" & DerLiS), LookAt:=xlPart)

Je teste encore, si problème je reviens.
Merci à tous les 2 Cibleo
 

Discussions similaires

Statistiques des forums

Discussions
312 465
Messages
2 088 650
Membres
103 904
dernier inscrit
thvalette