recherche dans un tableau

Le
titi
Bonjour a tous !!

je souhaite dans un tableau (ou matrice) rechercher une cible et que la
réponse soit le numéro de colonne et de ligne

exemple :
valeur recherchée sur (feuil1) X
tableau sur (feuil2):
ABCDEFGHI
1
2
3 X
4
5

Résultat : D3

le résultat exact est a chaque colonne correspond un nom (type dupond) et
chaque ligne correspond une année (type 2007)

Je recherche la valeur X il me renvoie le nom de la colonne (dupond) et le
nom de la ligne (2007)


Merci d avance

A+
Th
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #5100381
Salut titi
recherche colonne B ceci devrait faire l'affaire :

Columns("B:B").Select
Selection.Find(What:="X", After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate
MsgBox (Replace(ActiveCell.Address, "$", ""))

A actualiser What:="X" en fonction de la donnée recherchée

Résultat dans une boîte de dialogue

Dis moi !!!


Bonjour a tous !!

je souhaite dans un tableau (ou matrice) rechercher une cible et que la
réponse soit le numéro de colonne et de ligne

exemple :
valeur recherchée sur (feuil1) X
tableau sur (feuil2):
ABCDEFGHI
1
2
3 X
4
5

Résultat : D3

le résultat exact est a chaque colonne correspond un nom (type dupond) et
chaque ligne correspond une année (type 2007)

Je recherche la valeur X il me renvoie le nom de la colonne (dupond) et le
nom de la ligne (2007)


Merci d avance

A+
Th





Filochard
Le #5100361
valeur recherchée sur (feuil1) X
tableau sur (feuil2):
ABCDEFGHI
1
2
3 X
4
5

Résultat : D3

le résultat exact est a chaque colonne correspond un nom (type dupond) et
chaque ligne correspond une année (type 2007)

Je recherche la valeur X il me renvoie le nom de la colonne (dupond) et le nom
de la ligne (2007)


Pour trouver l'adresse relative de l'occurence dans le tableau "tablo" :
Formules matricielles à valider par ctrl+aj+enter
­RESSE(MIN(SI(tablo="x";LIGNE(tablo)));EQUIV("x";INDIRECT(MIN(SI(tablo="x";LIGNE(tablo)))&":"&MIN(SI(tablo="x";LIGNE(tablo))));0);4)
Pour trouver l'en-tête de ligne correspondante :
=INDIRECT("A"&MIN(SI(A1:I5="x";LIGNE(tablo))))
Pour trouver l'en-tête de colonne correspondante :
=INDIRECT(ADRESSE(1;EQUIV("x";INDIRECT(MIN(SI(tablo="x";LIGNE(tablo)))&":"&MIN(SI(tablo="x";LIGNE(tablo))));0)))

Par macro cela donnerait :
MsgBox Range("tablo").Find("x").Address(0, 0)
MsgBox Cells(Range("tablo").Find("x").Row, Range("tablo").Column)
MsgBox Cells(Range("tablo").Row, Range("tablo").Find("x").Column)

http://cjoint.com/?mniJZa7YkI

Modeste
Le #5100121
Bonsour® Filochard avec ferveur ;o))) vous nous disiez :

Par macro cela donnerait :
MsgBox Range("tablo").Find("x").Address(0, 0)
MsgBox Cells(Range("tablo").Find("x").Row, Range("tablo").Column)
MsgBox Cells(Range("tablo").Row, Range("tablo").Find("x").Column)

http://cjoint.com/?mniJZa7YkI


au cas ou il aurait plusieures occurences :

Sub Tests_pfff()
With Worksheets(1).Range("tablo")
Set c = .Find("X")
If Not c Is Nothing Then
firstAddress = c.Address
Do
MsgBox c.Address & Chr(10) & _
"Colonne : " & Cells(Range("tablo").Row, c.Column) & Chr(10) & _
" ligne : " & Cells(c.Row, Range("tablo").Column)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub


@+
;o)))

Publicité
Poster une réponse
Anonyme