Calcule avec valeur pouvant se trouver a deux endroit

Bonjour le forum ,

Donc je reviens a vous car j'ai un petit souci , j'ai la formule suivante

=IF(ISERROR(DATEDIF(RC[-7],TODAY(),""d"")*RC[-1]),"""",(DATEDIF(RC[-7],TODAY(),""d"")*RC[-1]))

qui me permet de calculer la difference entre une date anterieure et aujourdhui mais mon probleme et que la date antérieure peut se trouver a un emplacement different soit colonne D ou colonnes F , je sais pas dut tout comment faire si vous pouviez m'apportez une solution .

Cordialement .

Bonjour,

Quand la date est en colonne D, qu'y-a-t-il dans la colonne F , est-elle vide ? Et idem dans le sens inverse ?

Enfin perso je ne peux pas tester, ta formule m'indique uen erreur quand j'essais de la copier dans une cellule au niveau du 1er RC[

Sinon il te suffit de tester avec un SI (enfin si l'autre colonne est vide par exemple) :

=SI(cellule en colonne D n'est pas vide;ta formule;sinon ta formule appliquée à la colonneF)

Cordialement,

Salut ,

cela dépend il peut y avoir des données et peut rien y avoir pour les deux a chaque fois .

Alors 2ème question :

si la date doit se trouver en D, et que la colonne F n'est pas vide, est-ce que la colonne F contient une date aussi ou autre chose ?

Si les deux colonnes peuvent contenir une date en même temps, quelle règle détermine si tu dois utiliser la date en colonne D ou la date en colonne F ?

Sinon joins un fichier exemple avec les différentes possibilités possible et le résultat souhaitée du genre

Colonne D / Colonne F

Vide / vide

Date à utiliser / vide

Date à utiliser / non vide (avec le type de donnée possible)

idem en inversant avec la colonne F et en indiquant sur chaque ligne quelle colonne doit être utilisée.

Cordialement,

Re-salut,

je reprend t'est questions .

Donc si D contient une date , F contient le nom d'une ville ou F et vide .

Les deux colonnes ne peuvent contenir en même temps une date .

Cordialement .

Donc je reprend la proposition de toute à l'heure :

au pire tu peux tester si la cellule contient une date :

Dans un module, une petite fonction personnalisée :

Function ESTDATE(R As Range) As Boolean
 Application.Volatile
 If IsDate(R) Then ESTDATE = True
End Function

Et ensuite sur ta feuille dans la cellule ou tu veux ton calcul :

=SI(ESTDATE(Cellule_colonneD)=VRAI;ta_formule_colonneD;ta_formule_colonneF)

Enfin ceci si ta cellule est bien au format date, sinon si elle est au format texte, je pense qu'il va falloir tester si on trouve des / / pour déterminer si c'est bien une date ou non.

Cordialement,

salut ,

donc le probleme et que je doit integrer cela a une macro pour automatiser le calcule , peut ton le faire ?

Si tu fais tout par macro, il n'y a même pas besoin de la fonction personnalisée (sauf si tu compte l'appeller autre part dans le fichier), tu peux le faire directement :

on va dire que tu test la cellule D4 (après à toi d'adapter en fonction de ton code, je ne sais pas si tu travailles sur une ou plusieurs cellules des colonnes D et F) :

If IsDate(Range("D4")) = True then
   'ta formule qui marchait en colonne D que tu utilisais
else
   'ta formule adaptée pour la colonne F
end if

Cordialement,

salut ,

Un grand merci , oui je travaille sur plusieurs lignes des colonnes F et D .

Cordialement .

De rien,

Bonne fin de journée.

Salut,

J'ai encore une question comment éviter quand il n'ya plus de valeur que le calcule s’arrête car la ca continue et ca marque n'importe quoi .

Voici mon code :

    If IsDate(Range("D2")) = True then

Range("l2").Formula = "=IF(ISERROR(DATEDIF(RC[-8],TODAY(),""d"")),"""",(DATEDIF(RC[-8],TODAY(),""d"")))"
    Range("l2").AutoFill Destination:=Range("l2:l65535")
    else
  Range("l2").Formula = "=IF(ISERROR(DATEDIF(RC[-7],TODAY(),""d"")),"""",(DATEDIF(RC[-7],TODAY(),""d"")))"
    Range("l2").AutoFill Destination:=Range("l2:l65535")
    end if

bah le truc c'est que l'autofill c'est sur une plage donnée je pense, donc soit ta plage ne varie jamais et tu mets la bonne plage dans ta formule, soit ta plage varie et à ce moment la il faut faire une boucle qui verifie ligne à ligne si il y a bien une valeur en D ou en F et si oui, elle met la formule et donc enlever l'autofill.

Salut ,

J'ai trouver la solution donc voila comment on ecrit

=SI(D2="";"";DATEDIF(D2;AUJOURDHUI();"d"))

Cordialement .

Rechercher des sujets similaires à "calcule valeur pouvant trouver deux endroit"