Fonction SI sous VBA

Flo_Gui

XLDnaute Nouveau
Bonjour à tous,

J'ai une fonction SI dans un tableur qui m'indique si une cellule est un samedi, un dimanche ou un jour férié.
Le numéro du jour est indiqué en B6 et le jour en B7.
Par exemple, pour le mois de janvier (le 1er étant férié) donne ça :

=SI(B6="1er";"FERIE";SI(B7="Sa";"W-E";SI(B7="Di";"W-E";"")))

Ca marche parfaitement sur tableur

Ensuite, j'ai crée une macro pour avoir l'écriture de la formule sous VBA. Voilà ce que ça donne :

ActiveCell.FormulaR1C1 = "=IF(R[-15]C=""Sa"",""W-E"",IF(R[-15]C=""Di"",""W-E"",""""))"

J'aimerais que cette formule, si elle est vrai sur le tableur, c'est à dire si la cellule affiche "FERIE" ou "W-E" qu'elle se décale d'une cellule sur la droite.
Dans le cas contraire, si la cellule contient du "vide", que sa valeur prenne 1. Voilà ce que j'ai écrit :

If ActiveCell.FormulaR1C1 = "=IF(R[-2]C=""1er"",""FERIE"",IF(R[-1]C=""Sa"",""W-E"",IF(R[-1]C=""Di"",""W-E"",""""))" = True Then
ActiveCell.Offset(0, 1).Select
If ActiveCell.FormulaR1C1 = "=IF(R[-2]C=""1er"",""FERIE"",IF(R[-1]C=""Sa"",""W-E"",IF(R[-1]C=""Di"",""W-E"",""""))" = False Then
ActiveCell.Value = "1"

Or, ça ne marche pas. Systématiquement, la cellule prend la valeur 1, qu'il s'agisse d'un samedi, dimanche, jour férié ou d'un jour normal.

Avez vous la solution ?

Merci d'avance !
 

Flo_Gui

XLDnaute Nouveau
Re : Fonction SI sous VBA

Ci joint un fichier pour vous aider à être plus claire dans mes explications.

Une autre question par la même occasion :
Je souhaiterais faire en sorte via un code du type
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
que les cellules de la plage totale ne prenne pour valeur que 1 et dans le cas contraire faire apparaître un Msgbox indiquant l'erreur.

merci
 

Pièces jointes

  • TestFlo_Gui.xlsm
    10.3 KB · Affichages: 64

PrinceCorwin

XLDnaute Occasionnel
Re : Fonction SI sous VBA

Bonjour,

Le fichier que je joint n'est pas trop comme ta demande.
Mais il est possible de faire cela sans VBA.
Pour que les onglets auto-gèrent eux-mêmes les fériés et autres WE, j'ai utilisé une mise en forme conditionnelle, et dans ma formule une gestion du type de résultat dans la cellule.
De cette façon je n'ai "qu'a" ajouter un onglet (ici mensuel) et le nommer n'importe comment du moment qu'il finisse pas le numéro du mois, codé sur 2 caractères.

Joir PJ

Bonne journée
 

Pièces jointes

  • Flash .xls
    101 KB · Affichages: 60

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal