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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. Kehd
       
      Merci à tous ça marche, le problème est resolu
      0
  2. bolobo46 Messages postés 155 Statut Membre 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