[VBA] contrainte entre 2 cellules

Résolu/Fermé
Noodlesnood Messages postés 33 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 10 octobre 2008 - 6 févr. 2007 à 10:26
Noodlesnood Messages postés 33 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 10 octobre 2008 - 6 févr. 2007 à 16:07
Bonjour,

J'ai dans ma colonne C la possibilité de choisir un congé, en colonne D le nombre d'heures effectuées dans la journée, et en colonne E le nombre d'heures à rattraper, défini par une formule, ex : horaireJ - D2, où horaireJ est égal à 7:30. Cependant, si un congé a été pris en colonne C2, j'aimerais que E2 soit égal à 0 (pas d'heure à rattraper puisque congé).
J'ai essayé ceci :

If Range("C2") = "CA" Then Range("E2").ClearContents

Le problème, c'est que si l'utilisateur se rétracte et ne prend pas de congé, la formule horaireJ - D2 en cellule E2 a disparu.

Une idée?

Nood
A voir également:

9 réponses

bonjour, met un message box de confirmation.
0
Noodlesnood Messages postés 33 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 10 octobre 2008 2
6 févr. 2007 à 10:55
?

Ça ne va pas faire réapparaitre ma formule.
0
ben tu fait une condition si et tu remet la formule..
0
Noodlesnood Messages postés 33 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 10 octobre 2008 2
6 févr. 2007 à 11:09
J'ai essayé :

If Range("C2") = "CA" Then Range("E2").ClearContents
If IsEmpty(Range("C2")) Then Range("E2").Formula = horaireJ - D2

... mais toujours 0 en E2 avec celà. Autre chose, je ne comprends pas pourquoi le Else if ne marche jamais en VBA ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pour la condition fodrai que je la test sur excel me la ou je suis , je peut pas pour l'instant. En ce qui conserne le else if regarde dans l'aide si cette commande existe et si elle existe pas l'aide devrais te donner une autre commande
0
Noodlesnood Messages postés 33 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 10 octobre 2008 2
6 févr. 2007 à 11:31
En fait le Else if marche j'avais fait un saut de ligne inutile :

If Range("C2") = "CA" Then Range("E2").ClearContents Else If IsEmpty(Range("C2")) Then Range("E2").Value = (horaireJ - D2)

Mais je n'obtiens toujours pas ce que je veux. Merci de t'être penché sur le problème ea ; ) .
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
6 févr. 2007 à 15:30
Bonjour à tous,

pourquoi ne pas mettre la formule directement dans la feuille de calcul :

E2=SI(C2 = "CA";0;horairej-D2)

A+
0
Noodlesnood Messages postés 33 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 10 octobre 2008 2
6 févr. 2007 à 15:50
Salut JvDO,

Cette formule fonctionne en effet très bien : D .Mais si à la place de CA je veux dire que si la cellule A2 n'est pas vide (car j'ai des CA, RTT, ...) je peux procéder de cette manière également?
0
Noodlesnood Messages postés 33 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 10 octobre 2008 2
6 févr. 2007 à 16:07
=SI(C2<>"";0;horaireJ - D2)

; )
0