Rechercher valeur dans une ligne supérieure selon un critère
AZIZAPRE
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Rechercher valeur dans une ligne supérieure selon un critère
- Partager photos en ligne - Guide
- Rechercher ou saisir une url - Guide
- Aller à la ligne dans une cellule excel - Guide
- Mètre en ligne - Guide
- Rechercher une chanson - Guide
2 réponses
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
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