Find Excel

Résolu
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 2 août 2007 à 19:12
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 20 août 2007 à 18:15
Bonjour à Tous,

J'ai deux colonnes de 250 lignes, en A des noms et B des valeurs.
Afin de rechercher les valeurs de 1 à 5  dans B et les recopier dans F avec les noms respectifs en E j'utilise ceci : 

   With Range("B1:B250")
      For v = 1 To 5
         Set cell = .Find(v, LookIn:=xlValue)
         If Not cell Is Nothing Then
            adrese1 = cell.adresse1
            Do
               Set cell = .FindNext(cell)
               y = y + 1
                  '   ici je recopie les noms et noms dans E et valeurs dans F               Cells(y, 5) Cells(cell.Row, cell.Column - 1): Cells(y, 6) cell
            Loop While Not cell Is Nothing And cell.Address <> adresse1
         End If
      Next
   End With

Cela fonctionne très bien mais ma question est la suivante :
Il y a-t-il la possibilité de se passer de la boucle afin de rechercher en une seule passe les valeurs de 1 à 5.
Donc, comment faut-il paramétrer Find(v, LookIn:=xlValue)?
Evidement, sans la boucle, à la place de v  j'ai essayé >0 and <6, mais ce n'est pas accepté, HI; et si je souhaite également rechercher des valeurs de 0.01 à 1.5, comment partiquer ? 

Je pourrais bien sûr utiliser deux boucles pour explorer les lignes et colonnes, mais Find est beaucoup plus rapide.

Merci de votre aide et bonne soirée,

Cheyenne

2 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
20 août 2007 à 04:00
salut,

voici une alternative :

Sub test()
    Dim MyCell As Range
    Dim MyRange As Range
    
Set MyRange =  Range("A1:B250")

For Each MyCell In MyRange
    If MyCell.Value < 6 And MyCell.Value > 0 Then MsgBox MyCell.Address
Next MyCell
Set MyCell = Nothing
Set MyRange = Nothing
End Sub

~ <small> Mortalino ~ Colorisation automatique </small>

@++

<hr width ="100%" size="2" />( Nouveau forum : Exclusivement Office & VBA/STRONG>
3
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
20 août 2007 à 18:15
Bonjour Mortalino,

Hé bien dis donc, tu as fouillé les archives du forum, HI

Effectivement ce n'est qu'un pis aller que j'avais déjà effectué n'arrivant pas à faire pointer le Find directement sur les différentes valeurs de 1 à 5. Je récupérais donc l'adresse, comme tu me l'indiques, et à partir de là je séectionnais la cellule.
Apparement le Find ne supporte qu'un parmètrehttp://www.1000nautique.com/images/Image/produits/boutiqueloisirs/decoration/mappemonde/mappemonde-130x160big.jpg fixe aussi bien en chaîne qu'en valeur.

Enfin merci quand même de m'avoir répondu, ce qui ne m'étonnes pas de toi, car je suis, tant que faire ce peut, tes réponses sur le forum. Réponses d'ailleurs toujours judicieuses.

Bonne soirée à toi,

Bien amicalement de Cheyenne
0
Rejoignez-nous