OVH Cloud OVH Cloud

Trouver plusieurs position d'une valeur

3 réponses
Avatar
Imbeault Christine
bonjour à tous,

Voici ma matrice

a
b
c
a
d
e


Existe-t-il une fonction qui me permettrait de trouver ma position de mes
valeurs "a" ?.

pos: 1 et 4

merci
Christine

3 réponses

Avatar
anonymousA
Bonjour,

sans VBA en matricielle (Crtl+Shift+Enter) sur une plage de taille
identique à la plage de recherche( ici la plage E1:E6).
=SI(E1:E6="a";LIGNE(E1:E6);"")

en VBA, utiliser Find
With Worksheets(1).Range("la plage")
Set c = .'plage.Find(What:="a", LookIn:=xlFormulas,
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse)

If Not c Is Nothing Then
firstaddress = c.Address
Set Plage = c
Do
Set Plage = Union(c, Plage)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With

Ensuite c'est simple d'interroger for each c in plage pour avoir c.row
pour connaitre le N° de ligne

A+


bonjour à tous,

Voici ma matrice

a
b
c
a
d
e


Existe-t-il une fonction qui me permettrait de trouver ma position de mes
valeurs "a" ?.

pos: 1 et 4

merci
Christine




Avatar
michdenis
Bonjour Christine,

Essaie ceci :

'-----------------------------------------
Sub test()

With Worksheets("Feuil1")
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Set c = .Find("a", LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Message = c.Row & ", " & Message
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End With
If Message <> "" Then
Message = Left(Message, Len(Message) - 2)
MsgBox "Les lignes sont : " & Message & "."
Else
MsgBox "Rien trouver."
End If

End Sub
'-----------------------------------------


Salutations!


"Imbeault Christine" a écrit dans le message de news:
bonjour à tous,

Voici ma matrice

a
b
c
a
d
e


Existe-t-il une fonction qui me permettrait de trouver ma position de mes
valeurs "a" ?.

pos: 1 et 4

merci
Christine
Avatar
isabelle
bonjour Christine,

une autre solution avec une fonction perso :

Function Occurence(plage As Range, valeur_cherché)
For Each c In plage
If c = valeur_cherché Then Occurence = Occurence & c.Row & "-"
Next
Occurence = Left(Occurence, Len(Occurence) - 1)
End Function

isabelle


bonjour à tous,

Voici ma matrice

a
b
c
a
d
e


Existe-t-il une fonction qui me permettrait de trouver ma position de mes
valeurs "a" ?.

pos: 1 et 4

merci
Christine