Récuperer la valeur dans les lignes précedentes
Résolu
Statisticien
Messages postés
26
Statut
Membre
-
Statisticien Messages postés 26 Statut Membre -
Statisticien Messages postés 26 Statut Membre -
Bonjour à toutes et à tous,
De nouveau je suis confronté à un nouveau problème, après une multitude d'essais je me suis tourné vers vous, vous les experts en VBA excel.
Alors voila, j'ai un fichier excel (plusieurs lignes et plusieurs colonnes) qui comporte dans la première colonne :"Devise" et "845625". Si la cellule (i,1) = "845625", la celulle(i,3) sera vide. Si la cellule(j,1)= :"Devise" la celulle(i,3) sera remplie par la devise (USD, EUR ...).
Moi je voudrais qu'excel fasse les choses comme ça :
Il cherche dans la première colonne, une fois il trouve "845625", il remonte dans la même colonne jusqu'à ce qu'il trouve :"Devise" et il prend la devise qui figure dans la cellule(j,1) et il la colle dans la cellule(i,3).
C'est à dire que, à chaque fois qu'il trouve cellule (i,1) = "845625", il doit necessairement remonter en arrière (jusqu'à ce qu'il trouve cellule(j,1)= :"Devise") et non pas cherche au dessus de la ligne i.
Un petit exemple pour schématiser:
1- devise
2- devise
3-845625
4-845625
5-845625
6-devise
7-devise
la cellule(3,3) doit prendre la valeur de la cellule(2,3)
la cellule (4,3) doit prendre la valeur de la cellule(2,3)
la cellule (5,3) doit prendre la valeur de la cellule(2,3) et non pas celle de cellule(6,3).
Alors bien evidemment j'ai fais plusieurs essais, le plus présentable est le suivant :
Mais ça n'a pas marché. J'espère que vous allez m'aider, je vous remercie d'avance.
Cordialement,
De nouveau je suis confronté à un nouveau problème, après une multitude d'essais je me suis tourné vers vous, vous les experts en VBA excel.
Alors voila, j'ai un fichier excel (plusieurs lignes et plusieurs colonnes) qui comporte dans la première colonne :"Devise" et "845625". Si la cellule (i,1) = "845625", la celulle(i,3) sera vide. Si la cellule(j,1)= :"Devise" la celulle(i,3) sera remplie par la devise (USD, EUR ...).
Moi je voudrais qu'excel fasse les choses comme ça :
Il cherche dans la première colonne, une fois il trouve "845625", il remonte dans la même colonne jusqu'à ce qu'il trouve :"Devise" et il prend la devise qui figure dans la cellule(j,1) et il la colle dans la cellule(i,3).
C'est à dire que, à chaque fois qu'il trouve cellule (i,1) = "845625", il doit necessairement remonter en arrière (jusqu'à ce qu'il trouve cellule(j,1)= :"Devise") et non pas cherche au dessus de la ligne i.
Un petit exemple pour schématiser:
1- devise
2- devise
3-845625
4-845625
5-845625
6-devise
7-devise
la cellule(3,3) doit prendre la valeur de la cellule(2,3)
la cellule (4,3) doit prendre la valeur de la cellule(2,3)
la cellule (5,3) doit prendre la valeur de la cellule(2,3) et non pas celle de cellule(6,3).
Alors bien evidemment j'ai fais plusieurs essais, le plus présentable est le suivant :
Sub recuperer() for i=1 to 20000 if cells(i,1) ="845625" then if cells(i,3)=" " then do until cells(j,1)="Devise" cells(j,3).select selection.copy cells(i,3).paste loop end if end if Next end sub
Mais ça n'a pas marché. J'espère que vous allez m'aider, je vous remercie d'avance.
Cordialement,
A voir également:
- Récuperer la valeur dans les lignes précedentes
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment recuperer une video sur youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
1 réponse
Bonjour,
Fais-le en formule Excel plutôt qu'en VBA en ajoutant une colonne (en D3:"=SI(C3<>"";C3;D2)" et tu tires la formule vers le bas).
Dans ton énoncé, tu t'es mélangé les pinceaux sur certains i/j.
Si tu tiens au vba :
A+
Fais-le en formule Excel plutôt qu'en VBA en ajoutant une colonne (en D3:"=SI(C3<>"";C3;D2)" et tu tires la formule vers le bas).
Dans ton énoncé, tu t'es mélangé les pinceaux sur certains i/j.
Si tu tiens au vba :
Dim DernLigne As Long DernLigne = Range("A65536").End(xlUp).Row For i=1 To DernLigne If Cells(i,3).Value="" Then Cells(i,3).Value=Cells(i-1,3).Value End If Next i
A+
me génére l'erreur :Cells(i, 3).Value = Cells(i - 1, 3).Value. Une idée ? j'ai vérifié s'il y a un espace de trop mais en vain.
For i=2...