cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 2017
-
2 août 2007 à 19:12
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 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.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 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.