Stephane Au secours!!!! critere de recherche dans "Find"

  • Initiateur de la discussion polpoye
  • Date de début
P

polpoye

Guest
Bonjour Grand Gourou,

voila mon probleme dans le le code/algorithme suivant:

Dim C as range
set C = cells.find(what:= moncritere, lookin:=xlvalues)
test = C.value

moncritere= "un mot (de longueur variable) dans lequel le 3° et 4° caractere en partant de la GAUCHE sont 7 et 8"
par la suite y aura aussi
moncritere2= "un mot (de longueur variable) dans lequel le 3° et 4° caractere en partant de la DROITE sont 7 et 8".

Si "tu" (vous?) y arrives, je crois en Dieu!!!!

Cordialement, et en te remerciant de savoir créer, gérer et faire vivre ce site.
un internaute de la toile
 
J

jon

Guest
bonjour
si tu veux faire cela avec Find, il faut utiliser les caractères génériques ? & *



voilà un exemple bâtard


Sub coller_adresses_recherche()
Set ZoneDeSortie = Sheets("Feuil1").Cells(10, 1)
Set Lookuprange = Sheets("Feuil1").Range("A1:F1")
i = 0
With Lookuprange
Set C = .Find("??78*", LookIn:=xlValues)
If Not C Is Nothing Then
firstaddress = C.Address
ZoneDeSortie.Offset(1, 0).Value = C.Value
Do
C.Interior.ColorIndex = 50
ZoneDeSortie.Offset(i, 0).Value = C.Address
Set C = .FindNext(C)
i = i + 1
Loop While Not C Is Nothing And C.Address <> firstaddress
End If


Selection.Sort Key1:=Range("A10"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End With

End Sub


BOnne soirée à tous
Stéphane

ps:j'y vais, j'avais pas vu l'heure passée en Want (travaillant)
 
J

jon

Guest
salut


il faut avec Find utiliser les caractères génériques ? et *
Sub coller_adresses_recherche()
Set ZoneDeSortie = Sheets("Feuil1").Cells(10, 1)
Set Lookuprange = Sheets("Feuil1").Range("A1:F1")
i = 0
With Lookuprange
Set C = .Find("??78*", LookIn:=xlValues)
If Not C Is Nothing Then
firstaddress = C.Address
ZoneDeSortie.Offset(1, 0).Value = C.Value
Do
C.Interior.ColorIndex = 50
ZoneDeSortie.Offset(i, 0).Value = C.Address
Set C = .FindNext(C)
i = i + 1
Loop While Not C Is Nothing And C.Address <> firstaddress
End If


Selection.Sort Key1:=Range("A10"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End With

End Sub

bonne soirée à tous

Ciao
STéphane
 
Z

zon

Guest
Bonsoir à tous,



Je crois que la méthode Find ne permet pas directement de faire une recherche comme tu le désires elle permet de chercher un bout de chaîne n'importe où dans une autre chaine (pour un objet Range).

Par contre en jouant avec Mid on récupère toutes les cellules correspondantes aux conditions, ici dans un tableau, car je ne sais où tu veux les mettre...



Sub TrouveGauche()
Dim I As Byte
Dim C As Range
Dim TAB1(0 To 51) As String
I = 0
For Each C In Range("A1:A50")
If Len(C) > 3 Then
If Mid(C, 3, 2) = "78" Then TAB1(I) = C: I = I + 1
End If
Next C
End Sub



Pour la droite, Mid(C,len(C)-4,2)


A+++
 
P

polpoye

Guest
Dieu Existe... Et en plus y en a plusieurs....

( ce message aura donc un double but: remercier les personnes qui ont repondu a mon probleme, et laisser croire en une certaine tolérance en ce qui concerne le polythéisme!)

Bonne soirée a tous!
merci aux contributeurs.
 

Statistiques des forums

Discussions
312 497
Messages
2 088 995
Membres
104 001
dernier inscrit
dessinbecm