Fonction Si en VBA

Résolu
kehd -  
 Kehd -
Bonjour,
Je veux transcrire la formule suivante en VBA

Accueil!S39 = SI(Calculs!S165>0;Calculs!S165;SI(Calculs!S164>0;Calculs!S164;SI(Calculs!S163>0;Calculs!S163; SI(Calculs!S162>0;Calculs!S162; SI(Calculs!S161>0;Calculs!S161; SI(Calculs!S160>0;Calculs!S160; SI(Calculs!S159>0;Calculs!S159; SI(Calculs!S158>0;Calculs!S158; SI(Calculs!S158>0;Calculs!S158;Calculs!S159)))))))))

Le but est de copier et coller la cellule S165 de la feuille "Calculs" dans la cellule J39 de la feuille "Accueil" avec la condition suivante:

Si S165 >0 alors on copie S165 sinon la cellule au dessus c-a-d S164
tant que la cellule à copier n'est pas supérieure à 0 le scenario continue jusqu'à la cellue S15.

Merci de me venir en aide

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
bonjour,

Option Explicit
Sub egal_si()
Dim lig As Byte
Application.ScreenUpdating = False
With Sheets("calculs")
For lig = 165 To 15 Step -1
If .Cells(lig, "S") > 0 Then
Sheets("accueil").Range("J39") = .Cells(lig, "S")
Exit Sub
End If
Next
Sheets("accueil").Range("J39") = .Range("S159")
End With
End Sub

Michel
0
Kehd
 
Merci à tous ça marche, le problème est resolu
0
bolobo46 Messages postés 134 Date d'inscription   Statut Membre Dernière intervention   6
 
Il suffit d'utiliser l'alternative anglaise du si qui est IF.
A chaque SI, tu met IF et normalement, cela devrait marcher.
Dis-moi ce que cela donne :)
-1