|
|
|
|
Bonjour,
je suis novice en visual basic et je dois chercher à réaliser une macro qui doit me renvoyer une valeur non vide sur une colonne.
ex: je me trouve en A5 et en A4; A3; A2 mes cellules sont vides alors qu'en A1 iil y a une valeur. cette valeur en A1 je veux la mettre en A5.
Comment puis je faire?
merci de votre aide
Re,
Sub toto()
'remonte depuis A4 vers A1, prend la premiere cellule non-vide et mets la valeur en A5
Dim i As Integer
For i = 4 To 1 Step -1
If Not IsEmpty(Range("A" & i)) Then Range("A5").Value = Range("A" & i).Value: Exit For
Next i
End Sub
A+ |
Re,
ligne1 Sub toto()
ligne2'remonte depuis A4 vers A1, prend la premiere cellule non-vide et mets la valeur en A5
ligne 3Dim i As Integer
ligne4For i = 4 To 1 Step -1
ligne5If Not IsEmpty(Range("A" & i)) Then Range("A5").Value = Range("A" & i).Value: Exit For
ligne6Next i
ligne7End Sub
Sinon tes cellules ne sont peut etre pas vides (espace,caractere spécial....) => il faudrait ds ce cas changer le critere non vide par autre chose (> à 0, numérique/non numérique etc...) Sinon...je vois pas trop.... A+ |
OK, les cellules ne sont pas vides, il y a une formule....Ce qui t'intéresse est un montant donc une valeur numérique :
Sub toto()
'remonte depuis J49 vers J46, prend la premiere cellule numérique et mets la valeur en J50 puis stoppe
Dim i As Integer
For i = 49 To 46 Step -1
If IsNumeric(Range("J" & i).Value) Then Range("J50").Value = Range("J" & i).Value: Exit For
Next i
End Sub
A+ |
Hello,
|