Formule si et macro calcul de jours
tofing
Messages postés
22
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaiterais appliquer cette formule sous la forme d'une macro
=SI(OU(ESTVIDE(E4);ESTVIDE(F4));"";JOURS360(E4;F4)+1)
Si quelqu'un a une idée ça serait sympa
Merci à vous
Je souhaiterais appliquer cette formule sous la forme d'une macro
=SI(OU(ESTVIDE(E4);ESTVIDE(F4));"";JOURS360(E4;F4)+1)
Si quelqu'un a une idée ça serait sympa
Merci à vous
A voir également:
- Formule si et macro calcul de jours
- Formule si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Nombre de jours entre deux dates excel - Guide
- Compte instagram suspendu 180 jours - Guide
- Formule moyenne excel plusieurs colonnes - Guide
7 réponses
Pour le debut:
je ne vois pas ce que fais precisement la fonction jours360
If cells(4,5)<>"" or cells(4,6)<>"" then
je ne vois pas ce que fais precisement la fonction jours360
bonjour,
Sub Macro1()
Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(OR(ISBLANK(R[-9]C[1]),ISBLANK(R[-9]C[2])),"""",DAYS360(R[-9]C[1],R[-9]C[2])+1)"
Range("A1").Select
End Sub
Sub Macro1()
Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(OR(ISBLANK(R[-9]C[1]),ISBLANK(R[-9]C[2])),"""",DAYS360(R[-9]C[1],R[-9]C[2])+1)"
Range("A1").Select
End Sub
Merci ç marche
J'aimerais en plus que la formule s'applique à l'ensemble de la colonne G et s'active dès l'ouverture d''excel
Pour l'ouverture auto, j'ai
Sub Auto_open()
worksheetS("sheet1").Activate
et pour la colonne entière j'ai
Range("G:G").Select
Mais ça ne fonctionne pas très bien
J'aimerais en plus que la formule s'applique à l'ensemble de la colonne G et s'active dès l'ouverture d''excel
Pour l'ouverture auto, j'ai
Sub Auto_open()
worksheetS("sheet1").Activate
et pour la colonne entière j'ai
Range("G:G").Select
Mais ça ne fonctionne pas très bien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est bon j'ai enlevé
worksheetS("sheet1").Activate puisque je pense qu'en l'inscrivant dans le module de la feuille 1, il n'est pas nécessaire de rajouter cela
Merci pour votre aide
Cordialement
Tofing
worksheetS("sheet1").Activate puisque je pense qu'en l'inscrivant dans le module de la feuille 1, il n'est pas nécessaire de rajouter cela
Merci pour votre aide
Cordialement
Tofing
bonjour,
Sub Auto_open()
worksheetS("sheet1").Activate
range("G1").select
ActiveCell.FormulaR1C1 = _
"=IF(OR(ISBLANK(RC[-2]),ISBLANK(RC[-1])),"""",DAYS360(RC[-2],RC[-1])+1)"
Range("G2").Select
Range("G1").Select
Selection.AutoFill Destination:=Range("G1:G65000"), Type:=xlFillDefault
Range("G1:G2").Select
Sub Auto_open()
worksheetS("sheet1").Activate
range("G1").select
ActiveCell.FormulaR1C1 = _
"=IF(OR(ISBLANK(RC[-2]),ISBLANK(RC[-1])),"""",DAYS360(RC[-2],RC[-1])+1)"
Range("G2").Select
Range("G1").Select
Selection.AutoFill Destination:=Range("G1:G65000"), Type:=xlFillDefault
Range("G1:G2").Select
Alors voila le code que j'avais à la base
Option Explicit
Sub Auto_open()
ActiveCell.FormulaR1C1 = _
"=IF(OR(ISBLANK(RC[-2]),ISBLANK(RC[-1])),"""",DAYS360(RC[-2],RC[-1])+1)"
For Each cellule In colums(8).Cells
End Sub
Maintenant ça ne marche plus
Je n'arrive pas à appliquer ton code non plus mélanie
Je dois l'inscrire dans un module ou dans le code de la feuille ?
Option Explicit
Sub Auto_open()
ActiveCell.FormulaR1C1 = _
"=IF(OR(ISBLANK(RC[-2]),ISBLANK(RC[-1])),"""",DAYS360(RC[-2],RC[-1])+1)"
For Each cellule In colums(8).Cells
End Sub
Maintenant ça ne marche plus
Je n'arrive pas à appliquer ton code non plus mélanie
Je dois l'inscrire dans un module ou dans le code de la feuille ?
Bonjour,
Au passage c'est une mauvaise idée que de remplir toute la colonne. Le fichier va prendre de l'embonpoint pour rien...
Et puis dans le auto_open ce n'est pas une bonne idée non plus. Une fois que c'est fait c'est bon (tant que personne n'efface les cellules)
Ca serait mieux de la mettre dans l'évènement Change lorsque E et F sont saisis, ou compléter à 100 ou 1000 lignes libres à l'ouverture.
eric
Au passage c'est une mauvaise idée que de remplir toute la colonne. Le fichier va prendre de l'embonpoint pour rien...
Et puis dans le auto_open ce n'est pas une bonne idée non plus. Une fois que c'est fait c'est bon (tant que personne n'efface les cellules)
Ca serait mieux de la mettre dans l'évènement Change lorsque E et F sont saisis, ou compléter à 100 ou 1000 lignes libres à l'ouverture.
eric
Bonjour,
Tu veux absolument que la formule soit présente ?
Tant qu'à y mettre du vba autant mettre uniquement le résultat (en G ?) si les 2 dates sont correctes.
Et la façon de traiter ton problème dépend du fonctionnement de ta feuille :
Est-ce une feuille déjà crée et il faut traiter toutes les lignes ?
Est-ce une importation auquel cas les données ne sont pas forcément au format date ?
Est-une saisie ligne à ligne ?
Est-ce le résultat d'une formule ?
Est-que les données peuvent être modifiées au cours du temps ?
Une réponse à toutes ces questions (6) et un fichier exemple déposé sur cijoint.fr (coller ici le lien fourni) permettra une réponse la plus correcte à ton pb.
Et comme tu as l'air débutant sur excel j'espère que tu sais que jours360() considère que l'année fait 360 jours....
C'est à dire qu'entre le 15/04/11 et le 21/09/11 jours(360) donne 157 au lieu 159
Si tu veux la différence réelle en jours il faut simplement =F2-E2 et remettre le format de cellule à 'Standard'
eric
Tu veux absolument que la formule soit présente ?
Tant qu'à y mettre du vba autant mettre uniquement le résultat (en G ?) si les 2 dates sont correctes.
Et la façon de traiter ton problème dépend du fonctionnement de ta feuille :
Est-ce une feuille déjà crée et il faut traiter toutes les lignes ?
Est-ce une importation auquel cas les données ne sont pas forcément au format date ?
Est-une saisie ligne à ligne ?
Est-ce le résultat d'une formule ?
Est-que les données peuvent être modifiées au cours du temps ?
Une réponse à toutes ces questions (6) et un fichier exemple déposé sur cijoint.fr (coller ici le lien fourni) permettra une réponse la plus correcte à ton pb.
Et comme tu as l'air débutant sur excel j'espère que tu sais que jours360() considère que l'année fait 360 jours....
C'est à dire qu'entre le 15/04/11 et le 21/09/11 jours(360) donne 157 au lieu 159
Si tu veux la différence réelle en jours il faut simplement =F2-E2 et remettre le format de cellule à 'Standard'
eric
En fait j'ai écrit cela mais je ne sais pas si c'est correct, du moins cela ne fonctionne pas
Range("G:G").FormulaLocal = "=SI(OU(ESTVIDE(E4);ESTVIDE(F4));"";JOURS360(E4;F4)+1)"
La formule jours360 permet de calculer le nombre de jours calendaires entre deux dates
ps : je j'ai pas précisé mais je suis novice sur vba
MERCI
Essaye la formule de melanie1324. Si cela ne marche pas je me pencherai plus serieusement sur ton cas.