Nombre d'occurences d'une recherche

bonjour à tous,

comme le titre l'indique, je voudrais connaitre le nombre d'occurence d'une recherche dans un "range".

J'utilise : nbinstrum = Range("I2:I800").Find(What:="YV").Count

et il me renvoi 1 alors qu'il y a plus d'occurence dans mon classeur...

quelqu'un pourrait-il m'aider.

Merci d'avance

cordialement

Bonjour

Il faut toutes les trouver afin de le compter

Option Explicit

Sub Compte()
Dim NbInstrum As Integer
Dim Cel As Range
Dim Depart As String

  With Range("I2:I800")
    Set Cel = .Find(What:="YV", LookIn:=xlValues, lookat:=xlWhole)
    If Not Cel Is Nothing Then
      Depart = Cel.Address
      Do
        NbInstrum = NbInstrum + 1
        Set Cel = .FindNext(Cel)
      Loop While Depart <> Cel.Address
    End If
  End With
  MsgBox NbInstrum & " occurence(s)"
End Sub

merci pour cette réponse rapide mais ton programme ne me retourne rien... il ne me trouve pas d'occurence !!!

A quoi sert la "fonction" count de find alors si ça retourne pas le nombre d'occurences d'une recherche ???

Salut,

Salut Banzai...

une autre alternative

Sub Occurences()

Dim nbinstrum As Range
Dim bb As Integer

Set nbinstrum = Range("I2:I800")
bb = 0
For Each a In nbinstrum
    If a.Value = "YV" Then
    bb = bb + 1
    End If
Next
MsgBox bb
End Sub

j'ai oublié de vous dire et je pense que ça fausse tout...

le "YV" que je recherche fait partie d'une "expression"...

en fait les expressions sont YV101, YV102... et je cherche TOUS les "YV"...

c'est étonnant, quand je fais la recherche dans excel... sans programmation, ça fonctionne... il me trouve plusieurs occurences...

mais quand je "reteste" une macro enregistrée, elle me retourne une erreur !!!!

Quand je fais "RECHERCHER TOUT" dans excel, il m'en trouve 8 !!! il n'est vraiment pas possible de le faire aussi facilement avec VB !!! ça me tue


Bon...

j'ai rusé...

j'ai fait

nbinstrum = 0
        For Each a In Range("I2:I800")
            If Left(a.Value, 2) = "YV" Then
                nbinstrum = nbinstrum + 1
            End If
        Next

Game over, Banzai64 Merci... je pense que ça marchera comme ça...

en meme temps, je ne sais toujours pas a quoi sert le find().count !!!! LOLLLLLL

Bonjour

Pour le find.Count aucune idée

Mais pour la macro il suffisait de remplacer XlWhole par XlPart

Mais bon si tu as une solution ce n'est que cela qui compte

essaye avec cette nouvelle condition

Sub Occurences()

Dim nbinstrum As Range
Dim bb As Integer

Set nbinstrum = Range("I2:I800")
bb = 0
For Each a In nbinstrum
    If Mid(a, 1, 2) = "YV" Then
    bb = bb + 1
    End If
Next
MsgBox bb
End Sub

EDIT :

ah ben, t'avais résolu ton problème avec left.

Rechercher des sujets similaires à "nombre occurences recherche"