Recherche verticale inversée ?

  • Initiateur de la discussion Initiateur de la discussion mic2lam
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

mic2lam

Guest
Bonjour,

Je bloque un peu sur ce sujet...

J ai un tableau avec beaucoup de ligne qui s'incrémente quotidiennement avec en première colonne la date du jour, je souhaiterais que quand la même occurrence sur la ligne survient il me donne le résultat de la toute première occurrence donc en partant vers le bas du tableau.

j'arrive pas à le transcrire en vb

Merci pour votre aide

Je joins un fichier pour exemple

Cordialement,
 

Pièces jointes

Re : Recherche verticale inversée ?

Bonjour,

J incrémente les lignes de mon tableau par le haut quand je rajoute une ligne avec la date du jour en B5 & le nom C5 je voudrais également qu il me recherche en colonne D5 la première date à laquelle ce nom est dejà ressorti.

Je crois que c'est plus clair là^^ En me relisant en effet ma question était un chouillat tarabiscotée 😛
 
Re : Recherche verticale inversée ?

Bonjour

sans chercher à optimiser une recherche, je pense que l'exemple fourni par l'aide sur find doit être une piste

Code:
With Worksheets(1).Range("a1:a500")    
Set c = .Find(2, lookin:=xlValues)    
If Not c Is Nothing Then        
firstAddress = c.Address        
Do            
c.Value = 5            
Set c = .FindNext(c)        
Loop While Not c Is Nothing And c.Address <> firstAddress    
End If
End With
 
Re : Recherche verticale inversée ?

Bonjour à tous,

Peut-être une solution dans le fichier attaché (au cas ou la demande est bien comprise) avec la formule matricielle suivante:
Code:
=SI(NB.SI($C$5:$C$18;C5)>1;MIN(SI($C$5:$C$18=C5;$B$5:$B$18));B5)
qui sera recopiée vers le bas...

Cordialement
 

Pièces jointes

Re : Recherche verticale inversée ?

Re

autre possibilité, toujours VBA

Code:
For i = Range("C" & Rows.Count).End(xlUp).Row To 5 Step -1
    If Range("C" & i).Value = Range("C5").Value Then
        Range("D5").Value = Range("B" & i).Value
        Exit Sub
    End If
Next

retour sur l'utilisation de find : il suffit de chercher la première occurence et si elle existe de prendre la valeur en D

Code:
Range("D5").Value = Range("B5").Value
derligne = Range("C" & Rows.Count).End(xlUp).Row
If derligne < 6 Then Exit Sub
With Range("C6:c" & derligne)
    Set c = .Find(Range("C5"), LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
        Range("D5").Value = c.Offset(0, 1).Value
    End If
End With
 
Dernière édition:
Re : Recherche verticale inversée ?

Bonjour,

Merci pour ces quelques pistes à exploiter, je vais essayer d'utiliser la commande Find.

Quoi qu'il en soit votre aide m'a été bien précieuse, je débute le vb depuis deux semaines...

Cordialement,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
681
Réponses
3
Affichages
276
Réponses
11
Affichages
350
Réponses
10
Affichages
567
Retour