Rechercher valeur dans une ligne supérieure selon un critère

Fermé
AZIZAPRE Messages postés 2 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 2 juillet 2015 - 2 juil. 2015 à 14:09
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 2 juil. 2015 à 15:58
Bonjour,

Je suis face à un problème et je ne sais pas comment le résoudre .

J'ai un fichier de la sorte
niveau valeur valeur trouvée
Ligne 1 1 A
Ligne 2 2 AA
Ligne 3 2 AAA
Ligne 4 3 AAAA
Ligne 5 3 AAAAA
Ligne 6 3 B
Ligne 7 3 BB
Ligne 8 2 BBB
Ligne 9 3 BBBBB
Ligne 10 2 BBBBBB

Par exemple pour les lignes avec niveau 2, je voudrai qu'il me copie dans la colonne 3 la valeur associée à la première ligne au dessus avec niveau 1

par exple pour la ligne 2 , c'est un niveau 2 , du coup il doit me chercher la première ligne au dessus de ma ligne qui correspond au niveau 1 et me copie dans la colonne trouvée la valeur associée aun iveau 1 c'est à dire "A"

on reprend pour la ligne 5 par exple , c'est un niveau 3 , donc on va chercher la première ligne au dessus avec niveau 3, et on copie dans la colonne 3 la valeur . ici c'est AAA
POUR LA LIGNE 7, ce sera aussi AAA ( valeur de la ligne 3 )
et pour la ligne 10, c'est la valeur de la ligne 9 qui va être copiée ( BBBBB)

est ce que quelqu'un peut m'aider à developper ce code ? je n'y arrive pas du tout
Merci beaucoup pour votre aide

A voir également:

2 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
2 juil. 2015 à 15:11
Bonjour

Avec ce que j'ai compris
http://www.cjoint.com/c/EGcnlnsa1Ag

Cdlmnt
0
AZIZAPRE Messages postés 2 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 2 juillet 2015
2 juil. 2015 à 15:43
Bonjour

Tout d'abord merci beaucoup pour votre réponse. c'est à peu près ça , par rapport à ce que j'ai donné ça marche très bien . ca plante à un seul endroit

je donne un autre exple
Ligne 1 1 A
Ligne 2 2 AA
Ligne 3 2 AAA
Ligne 4 3 AAAA
Ligne 5 3 AAAAA
Ligne 6 3 B
Ligne 7 4 BB
Ligne 8 3 BBB
Ligne 9 3 BBBBB
Ligne 10 2 BBBBBB
Je mets dans la ligne 7 le niveau 4
dans la ligne 8 qui représente le nveau 3 , je dois chercher la ligne supérieure qui comporte le niveau 2 ( cà dire la ligne 3 ) et non la valeur de la ligne 7 .

Je ne sais pas si je suis claire c'est toujours niveau -1 dont on cherche la valeur

Merci
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
2 juil. 2015 à 15:58
Comme ceci ?

Const lideb = 2
Const codeb = 1

Public Sub OK()
Dim li As Long, lifin As Long, v As String, n As Long, li2 As Long
Application.ScreenUpdating = False
With ActiveSheet
  lifin = .Cells(Rows.Count, codeb).End(xlUp).Row
  For li = lideb + 1 To lifin
    v = .Cells(li, codeb + 1)
    n = .Cells(li, codeb)
    li2 = li
    Do
      li2 = li2 - 1
    Loop While .Cells(li2, codeb) <> n - 1 And li2 > lideb
    .Cells(li, codeb + 2) = .Cells(li2, codeb + 1)
  Next li
End With
Application.ScreenUpdating = True
End Sub
0