fonction find , et pd de tri

M

mowbray

Guest
Je cherche à faire des tri sur plusieurs colonne, Je commence mon tri par recherché des cellules contenant une chaine de caractère, j'utilise pour cela la fonction find tel que je l'ai mise plus bas.

=> est il possible de mettre plusieur argument dans la fonction find?: trouver les cellules contenant "jouet" & "travail" ou bien "jouet" OU "travail" j'ai essayé avec les opérateur AND et OR mais ça ne donne rien

pour remplacer la fonction AND j'ai fait une double boucle la premiére créant une range de toute les cellules contenant le premier argument et la seconde cherchant le second argument dans cet object range. Mais c'est assez long lorsqu'il y a plusieurs arguments (voir en bas )

Pour remplacer la fonction OR on peut évidemment faire plusieur boucles mais il arrive alors que l'on ai des doublons et surtout on perd l'ordre relatif des cellules.

Je met en piéce jointe une macro d'essaie ou je fait des tri et ou je remplace la fonction IF par find pour pouvoir introduire le symbole * (n'importe quel caractère) qui n'est pas reconnue par la fonction IF genre:
IF cells(i ,j).value = *
cette macro ne marche pas et je ne comprends vraiment pas pourquoi je suis passé par un autre chemin mais si quelqu'un arrive à comprendre pourquoi ça ne marche pas je serais curieux de le comprendre aussi

voila je sais que c'est un peu long et que je demande beaucoup de chose, cela fait maintenant un mois que je me suis mis à VBA et j'ai énormément progressé notamment grace aux ténors de ce forum que je remercie, alors même si vous avez une réponse partielle, je suis avide de tout.



LA FONCTION FIND

For Each ce In Range(typelogement)
Set c = ce.Find(typelog, LookIn:=xlValues)
If Not c Is Nothing Then

LA BOUCLE REMPLACANT LE AND

For Each ce In Range(typelogement)
Set c = ce.Find(typelog, LookIn:=xlValues)
If Not c Is Nothing Then
sas = sas & "," & c.Address(False, False)
End If
Next ce


For Each cee In Range(sas)
Set d = cee.Find(charactéristlog, LookIn:=xlValues)
If Not d Is Nothing Then
cee.Offset(o, 1).Interior.ColorIndex = 4
count = count + 1
 

Statistiques des forums

Discussions
312 675
Messages
2 090 799
Membres
104 667
dernier inscrit
gwtr