Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recherche dans une ligne

  • Initiateur de la discussion Twuce
  • Date de début
T

Twuce

Guest
Bonjour,

Si y a des gens qui aiment les casses tete, enfin en tout cas moi ca me casse la tete .
C simple
j ai 2 lignes:


date | 01/01/04 | 02/01/04 | 03/01/04 | 04/01/04 | 05/01/04|
valeur | | X | | X | |

voila alors ce que je voudrais est simple

en parcourant la liste des valeurs je voudrais qu on me retourne
le premier X de la liste et le dernier X de la liste
ainsi j aurais 2 dates 02/01/04 et 04/01/04

je ne c pas comment m y prendre si une personne a une idée c super cool
merci d avance
 
M

Monique

Guest
Bonjour,

Tes dates de B1 à F1
Tes X de B2 à F2
La 1ère date :
=INDEX(B1:F1;EQUIV("X";B2:F2;0))
La dernière date :
=INDEX(B1:F1;EQUIV(2;1/("X"=B2:F2)))
La 2è formule est à valider en appuyant simultanément sur ctrl, maj et entrée
2è formule EQUIV(2; etc) 2 ou, en tout cas, > à 1
pourquoi ? Je n'en sais rien
Et je me suis cassé la tête à chercher le pourquoi du 2.
 
R

Ronan

Guest
Bonsoir,

Si ton tableau se situe en A1:E2 :

Dim plage As Range
Dim valeur As Range
Dim date1(1) As Date
Dim ndate As Byte
Set plage = Range("a2:e2")
For Each valeur In plage
If valeur <> "" Then
date1(ndate) = Cells(1, valeur.Column)
ndate = ndate + 1
If ndate = 2 Then Exit For
End If
Next
MsgBox "Date début : " & date1(0) & " # Date fin : " & date1(1), vbOKOnly
End Sub

Bye

Ronan
 
T

Twuce

Guest
Merci d'avoir passer du temps a m aider toi et les autres.
J ai commencé avec ta solution a réfléchire et j en suis arrivé a :

=EQUIV("X";'Qui Quoi Quand T1'!D8:CP8;0)

pour le premier element

=EQUIV("X";'Qui Quoi Quand T1'!D8:CP8)

pour le dernier element

les 2 font exactement ce que je ve je comprends pas comment elle le fait mais elle le fait.
Cependant le probleme c que les fonctions détectent les X ro moi j ai des valeurs qui ne sont pas toujours les memes donc ca complique les choses
Si tu as une idée je suis preneur

Merci d'avance

Mat
 
M

Monique

Guest
Bonjour,

Tes dates de B1 à H1
Tes X Y Z A B F n'importe quoi de B2 à H2

La 1ère date :
Si tu n'as que du texte de B2 à H2 (ou si tu ne veux prendre en compte que le texte)
=INDEX(B1:H1;EQUIV("*";B2:H2;0))
Si tu n'as que des valeurs numériques ou un mélange numérique et texte
=INDEX(B1:H1;MIN(SI(B2:H2<>"";COLONNE(B2:H2);""))-1)
La 2è est matricielle, à valider par ctrl, maj et entrée

La dernière date :
=INDEX(B1:H1;MAX(SI(B2:I2<>"";COLONNE(B2:I2);""))-1)
Formule matricielle, à valider par ctrl, maj et entrée

Cette partie de la 2è :
=MAX(SI(B2:I2<>"";COLONNE(B2:I2);""))
te donne le n° de la dernière cellule vide, en comptant à partir de B2

Tu vérifieras parce que, les 2 deuxièmes, c'est la 1ère fois que je les fais.
(ça me donne une idée pour un autre post)
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…