Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça marche
si on se sert de function du genre Somme... mais avec "Aujourdhui + 30", je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça marche
si on se sert de function du genre Somme... mais avec "Aujourdhui + 30", je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça marche
si on se sert de function du genre Somme... mais avec "Aujourdhui + 30", je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
Oui, et je crois que c'est le mieux :
2- Comment faire pour aller faire calculer ça dans Excel et le faire écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça marche si
on se sert de function du genre Somme... mais avec "Aujourdhui + 30", je ne
sais pas comment l'écrire. J'ai essayé plein de syntaxes différentes... rien
à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
Oui, et je crois que c'est le mieux :
2- Comment faire pour aller faire calculer ça dans Excel et le faire écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça marche si
on se sert de function du genre Somme... mais avec "Aujourdhui + 30", je ne
sais pas comment l'écrire. J'ai essayé plein de syntaxes différentes... rien
à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
Oui, et je crois que c'est le mieux :
2- Comment faire pour aller faire calculer ça dans Excel et le faire écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça marche si
on se sert de function du genre Somme... mais avec "Aujourdhui + 30", je ne
sais pas comment l'écrire. J'ai essayé plein de syntaxes différentes... rien
à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Bonjour,
As-tu essayé de mettre un champ Date dans Word avec la date du jour et d'y
ajouter 30 ?
--
Patrick
"gabrielle chabot-giroux" wrote:Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans
Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire
écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça
marche
si on se sert de function du genre Somme... mais avec "Aujourdhui + 30",
je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes
différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Bonjour,
As-tu essayé de mettre un champ Date dans Word avec la date du jour et d'y
ajouter 30 ?
--
Patrick
"gabrielle chabot-giroux" wrote:
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans
Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire
écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça
marche
si on se sert de function du genre Somme... mais avec "Aujourdhui + 30",
je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes
différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Bonjour,
As-tu essayé de mettre un champ Date dans Word avec la date du jour et d'y
ajouter 30 ?
--
Patrick
"gabrielle chabot-giroux" wrote:Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans
Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire
écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça
marche
si on se sert de function du genre Somme... mais avec "Aujourdhui + 30",
je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes
différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça marche
si on se sert de function du genre Somme... mais avec "Aujourdhui + 30", je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça marche
si on se sert de function du genre Somme... mais avec "Aujourdhui + 30", je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça marche
si on se sert de function du genre Somme... mais avec "Aujourdhui + 30", je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
Par exemple avec ce genre de code (mais je ne suis pas sûr d'avoir compris
ce que tu souhaites comme résultat pour une date de départ comme 30
janvier 2006 : 1er mars 2006 ? 28 février 2006 ?) :
''''''''''''''''''''
Sub CalculEcheance()
Dim S, DateEcheance, Annee, Mois, Jour
S = InputBox("Entrez une date sous la forme aaaa-mm-jj :")
' Transforme la date en nombre
Annee = Split(S, "-")(0)
Mois = Split(S, "-")(1)
Jour = Split(S, "-")(2) + 30
DateEcheance = DateSerial(Annee, Mois, Jour)
MsgBox DateEcheance
End Sub
''''''''''''''''''''
----------
Ange Ounis
----------Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans
Word (c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire
écrire dans mon doc Word? Probablement en me servant de codes de ce
genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça
marche si on se sert de function du genre Somme... mais avec "Aujourdhui
+ 30", je ne sais pas comment l'écrire. J'ai essayé plein de syntaxes
différentes... rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
Par exemple avec ce genre de code (mais je ne suis pas sûr d'avoir compris
ce que tu souhaites comme résultat pour une date de départ comme 30
janvier 2006 : 1er mars 2006 ? 28 février 2006 ?) :
''''''''''''''''''''
Sub CalculEcheance()
Dim S, DateEcheance, Annee, Mois, Jour
S = InputBox("Entrez une date sous la forme aaaa-mm-jj :")
' Transforme la date en nombre
Annee = Split(S, "-")(0)
Mois = Split(S, "-")(1)
Jour = Split(S, "-")(2) + 30
DateEcheance = DateSerial(Annee, Mois, Jour)
MsgBox DateEcheance
End Sub
''''''''''''''''''''
----------
Ange Ounis
----------
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans
Word (c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire
écrire dans mon doc Word? Probablement en me servant de codes de ce
genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça
marche si on se sert de function du genre Somme... mais avec "Aujourdhui
+ 30", je ne sais pas comment l'écrire. J'ai essayé plein de syntaxes
différentes... rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
Par exemple avec ce genre de code (mais je ne suis pas sûr d'avoir compris
ce que tu souhaites comme résultat pour une date de départ comme 30
janvier 2006 : 1er mars 2006 ? 28 février 2006 ?) :
''''''''''''''''''''
Sub CalculEcheance()
Dim S, DateEcheance, Annee, Mois, Jour
S = InputBox("Entrez une date sous la forme aaaa-mm-jj :")
' Transforme la date en nombre
Annee = Split(S, "-")(0)
Mois = Split(S, "-")(1)
Jour = Split(S, "-")(2) + 30
DateEcheance = DateSerial(Annee, Mois, Jour)
MsgBox DateEcheance
End Sub
''''''''''''''''''''
----------
Ange Ounis
----------Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans
Word (c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire
écrire dans mon doc Word? Probablement en me servant de codes de ce
genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça
marche si on se sert de function du genre Somme... mais avec "Aujourdhui
+ 30", je ne sais pas comment l'écrire. J'ai essayé plein de syntaxes
différentes... rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Merci pour ton idée Patrick, mais ça n'a pas l'air de marcher....
À force de taponner, j'ai réussi à me pondre une macro qui a de
l'allure...
Ce n'est pas encore tout à fait au point, mais j'y travaille encore pour
m'assurer que toutes les possibilités sont traitées. Si jamais quelqu'un a
envie de la tester (dans Word) et de comparer les résultats avec ce que
donnerait Excel (ajouter 30 à une cellule contenant une date), je serais
contente de corriger les détails qui ne fonctionnent pas...
Sub Echeance()
Dim DateAbonnement As String, Echeance As String, Echeance2 As String
Dim Annee As String, Mois As String, Jour As String
DateAbonnement = Val(InputBox("Entrez une date."))
'Transforme la date en nombre
Echeance = DateAbonnement + 30 '20060161
Annee = Left(Echeance, 4)
Mois = Mid(Echeance, 5, 2)
Jour = Right(Echeance, 2)
If Mois = 1 And Jour > 58 And Right(Annee / 4 * 10, 1) <> 0 Then
Mois = Mois + 2
Jour = Jour - 58
'Si on passe de janvier à mars (comme février n'a que 28 jours)
ElseIf Mois = 1 And Jour > 59 And Right(Annee / 4 * 10, 1) = 0 Then
Mois = Mois + 2
Jour = Jour - 59
'même chose, mais dans une année bisextile (ex 2004/4*10 = 5010, donc
finit par 0)
ElseIf Mois = 12 And Jour >= 32 And Jour <= 61 Then
Jour = Jour - 31
Mois = Mois - 11
Annee = Annee + 1
'Si on doit changer l'année (ex: 2000 12 15 +30 = 2000 12 45 => 2001
01
15)
ElseIf Jour > 31 And (Mois = 1 Or Mois = 3 Or Mois = 5 Or Mois = 7 Or Mois
8 _
Or Mois = 10 Or Mois = 12) Then
Jour = Jour - 31
Mois = Mois + 1
'Si on doit changer le mois - mois de 31 jours (ex: résultat de
20060740)
ElseIf (Mois = 4 Or Mois = 6 Or Mois = 9 Or Mois = 11) And Jour > 30 Then
Jour = Jour - 30
Mois = Mois + 1
'Si on doit changer le mois - mois de 30 jours (ex: résultat de
20060640
ElseIf Mois = 2 And Right(Annee / 4 * 10, 1) = 0 And Jour > 29 Then
Jour = Jour - 29
Mois = Mois + 1
'Mois de février BISSEXTILE (ex 2004/4*10 = 5010, donc finit par 0)
ElseIf Mois = 2 And Right(Annee / 4 * 10, 1) <> 0 And Jour > 28 Then
Jour = Jour - 28
Mois = Mois + 1
'Mois de février NORMAL (ex 2006/4*10 = 5015, donc ne finit pas par 0)
End If
Echeance2 = Annee & " " & Mois & " " & Jour
MsgBox Left(DateAbonnement, 4) & " " & Mid(DateAbonnement, 5, 2) & " " _
& Right(DateAbonnement, 2) & Chr(10) & Echeance2
End Sub
"Patrick Fredin" a écrit dans le
message
de news:Bonjour,
As-tu essayé de mettre un champ Date dans Word avec la date du jour et
d'y
ajouter 30 ?
--
Patrick
"gabrielle chabot-giroux" wrote:Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans
Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire
écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça
marche
si on se sert de function du genre Somme... mais avec "Aujourdhui +
30",
je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes
différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Merci pour ton idée Patrick, mais ça n'a pas l'air de marcher....
À force de taponner, j'ai réussi à me pondre une macro qui a de
l'allure...
Ce n'est pas encore tout à fait au point, mais j'y travaille encore pour
m'assurer que toutes les possibilités sont traitées. Si jamais quelqu'un a
envie de la tester (dans Word) et de comparer les résultats avec ce que
donnerait Excel (ajouter 30 à une cellule contenant une date), je serais
contente de corriger les détails qui ne fonctionnent pas...
Sub Echeance()
Dim DateAbonnement As String, Echeance As String, Echeance2 As String
Dim Annee As String, Mois As String, Jour As String
DateAbonnement = Val(InputBox("Entrez une date."))
'Transforme la date en nombre
Echeance = DateAbonnement + 30 '20060161
Annee = Left(Echeance, 4)
Mois = Mid(Echeance, 5, 2)
Jour = Right(Echeance, 2)
If Mois = 1 And Jour > 58 And Right(Annee / 4 * 10, 1) <> 0 Then
Mois = Mois + 2
Jour = Jour - 58
'Si on passe de janvier à mars (comme février n'a que 28 jours)
ElseIf Mois = 1 And Jour > 59 And Right(Annee / 4 * 10, 1) = 0 Then
Mois = Mois + 2
Jour = Jour - 59
'même chose, mais dans une année bisextile (ex 2004/4*10 = 5010, donc
finit par 0)
ElseIf Mois = 12 And Jour >= 32 And Jour <= 61 Then
Jour = Jour - 31
Mois = Mois - 11
Annee = Annee + 1
'Si on doit changer l'année (ex: 2000 12 15 +30 = 2000 12 45 => 2001
01
15)
ElseIf Jour > 31 And (Mois = 1 Or Mois = 3 Or Mois = 5 Or Mois = 7 Or Mois
8 _
Or Mois = 10 Or Mois = 12) Then
Jour = Jour - 31
Mois = Mois + 1
'Si on doit changer le mois - mois de 31 jours (ex: résultat de
20060740)
ElseIf (Mois = 4 Or Mois = 6 Or Mois = 9 Or Mois = 11) And Jour > 30 Then
Jour = Jour - 30
Mois = Mois + 1
'Si on doit changer le mois - mois de 30 jours (ex: résultat de
20060640
ElseIf Mois = 2 And Right(Annee / 4 * 10, 1) = 0 And Jour > 29 Then
Jour = Jour - 29
Mois = Mois + 1
'Mois de février BISSEXTILE (ex 2004/4*10 = 5010, donc finit par 0)
ElseIf Mois = 2 And Right(Annee / 4 * 10, 1) <> 0 And Jour > 28 Then
Jour = Jour - 28
Mois = Mois + 1
'Mois de février NORMAL (ex 2006/4*10 = 5015, donc ne finit pas par 0)
End If
Echeance2 = Annee & " " & Mois & " " & Jour
MsgBox Left(DateAbonnement, 4) & " " & Mid(DateAbonnement, 5, 2) & " " _
& Right(DateAbonnement, 2) & Chr(10) & Echeance2
End Sub
"Patrick Fredin" <nospam_patrick.fredin@iquebec.com> a écrit dans le
message
de news: FFF22B52-D762-4F8C-8D9F-DA9AEF550A0F@microsoft.com...
Bonjour,
As-tu essayé de mettre un champ Date dans Word avec la date du jour et
d'y
ajouter 30 ?
--
Patrick
"gabrielle chabot-giroux" wrote:
Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans
Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire
écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça
marche
si on se sert de function du genre Somme... mais avec "Aujourdhui +
30",
je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes
différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle
Merci pour ton idée Patrick, mais ça n'a pas l'air de marcher....
À force de taponner, j'ai réussi à me pondre une macro qui a de
l'allure...
Ce n'est pas encore tout à fait au point, mais j'y travaille encore pour
m'assurer que toutes les possibilités sont traitées. Si jamais quelqu'un a
envie de la tester (dans Word) et de comparer les résultats avec ce que
donnerait Excel (ajouter 30 à une cellule contenant une date), je serais
contente de corriger les détails qui ne fonctionnent pas...
Sub Echeance()
Dim DateAbonnement As String, Echeance As String, Echeance2 As String
Dim Annee As String, Mois As String, Jour As String
DateAbonnement = Val(InputBox("Entrez une date."))
'Transforme la date en nombre
Echeance = DateAbonnement + 30 '20060161
Annee = Left(Echeance, 4)
Mois = Mid(Echeance, 5, 2)
Jour = Right(Echeance, 2)
If Mois = 1 And Jour > 58 And Right(Annee / 4 * 10, 1) <> 0 Then
Mois = Mois + 2
Jour = Jour - 58
'Si on passe de janvier à mars (comme février n'a que 28 jours)
ElseIf Mois = 1 And Jour > 59 And Right(Annee / 4 * 10, 1) = 0 Then
Mois = Mois + 2
Jour = Jour - 59
'même chose, mais dans une année bisextile (ex 2004/4*10 = 5010, donc
finit par 0)
ElseIf Mois = 12 And Jour >= 32 And Jour <= 61 Then
Jour = Jour - 31
Mois = Mois - 11
Annee = Annee + 1
'Si on doit changer l'année (ex: 2000 12 15 +30 = 2000 12 45 => 2001
01
15)
ElseIf Jour > 31 And (Mois = 1 Or Mois = 3 Or Mois = 5 Or Mois = 7 Or Mois
8 _
Or Mois = 10 Or Mois = 12) Then
Jour = Jour - 31
Mois = Mois + 1
'Si on doit changer le mois - mois de 31 jours (ex: résultat de
20060740)
ElseIf (Mois = 4 Or Mois = 6 Or Mois = 9 Or Mois = 11) And Jour > 30 Then
Jour = Jour - 30
Mois = Mois + 1
'Si on doit changer le mois - mois de 30 jours (ex: résultat de
20060640
ElseIf Mois = 2 And Right(Annee / 4 * 10, 1) = 0 And Jour > 29 Then
Jour = Jour - 29
Mois = Mois + 1
'Mois de février BISSEXTILE (ex 2004/4*10 = 5010, donc finit par 0)
ElseIf Mois = 2 And Right(Annee / 4 * 10, 1) <> 0 And Jour > 28 Then
Jour = Jour - 28
Mois = Mois + 1
'Mois de février NORMAL (ex 2006/4*10 = 5015, donc ne finit pas par 0)
End If
Echeance2 = Annee & " " & Mois & " " & Jour
MsgBox Left(DateAbonnement, 4) & " " & Mid(DateAbonnement, 5, 2) & " " _
& Right(DateAbonnement, 2) & Chr(10) & Echeance2
End Sub
"Patrick Fredin" a écrit dans le
message
de news:Bonjour,
As-tu essayé de mettre un champ Date dans Word avec la date du jour et
d'y
ajouter 30 ?
--
Patrick
"gabrielle chabot-giroux" wrote:Bonjour à tous,
je vous explique ce que je veux faire:
Je voudrais calculé une date d'échéance ("=aujourdhui() + 30" par
exemple), mais à partir de Word car tout le reste de ma macro est dans
Word
(c'est pour automatiser une lettre).
1- Est-ce possible de faire calculer ça directement par VBA (Word)?
2- Comment faire pour aller faire calculer ça dans Excel et le faire
écrire
dans mon doc Word? Probablement en me servant de codes de ce genre:
Set xl = CreateObject("EXCEL.SHEET")
Echeance = xl.Application.Worksheet.Function. ????????????? (ça
marche
si on se sert de function du genre Somme... mais avec "Aujourdhui +
30",
je
ne sais pas comment l'écrire. J'ai essayé plein de syntaxes
différentes...
rien à faire, je suis coinçée)
Si vous avez une idée, merci de m'en faire part!
Gabrielle