Find Excel [Résolu]

Signaler
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
-
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
-
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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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>
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
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