OVH Cloud OVH Cloud

Méthode ou savoir faire

3 réponses
Avatar
ced
Bonjour,
Je commencerai par me présenter,
J'utilise au quotidien pour mon travail Excel et VB afin de créer de macro
applications. Mes connaissances en la matière s'accroient mais sont limitées
par un manque d'aide direct. Mon post concerne en fait mon problème suivant,
je souhaite disposer d'une variable correspondant au premier jour du mois
précédent (ex. : 01/09/2004), pour y parvenir je crées une fonction sur
Excel qui est :

=CONCATENER("01/";SI((MOIS(AUJOURDHUI())-1)<10;CONCATENER("0";MOIS(AUJOURDHUI())-1);MOIS(AUJOURDHUI()-1));
_
CONCATENER("/";SI((MOIS(AUJOURDHUI())-1)=12;ANNEE(AUJOURDHUI())-1;ANNEE(AUJOURDHUI()))))

ensuite sur VBA je mets ma variable en date et je la fais correspondre à la
cellule contenant la fonction
Ma question est : Peut-on faire la même chose uniquement en VB
Pour les solutions que vous m'apporteriez (éventuellement) ce serait sympa
de me l'expliquer (pour tout ce qui pas forcement logique).
Merci beaucoup de votre aide

3 réponses

Avatar
Clément Marcotte
Bonjour,

En VBA la fonction Date() retourne la date du jour. Avec la fonction
MOnth(ladate) tu peux récupérer le numéro du mois de la date en cause.
En enlevant 1 à la réponse, tu obtiens le mois précédent. Pour obtenir
l'année, tu utilise le même principe, mais avec la fonction Year(),
mais sans enlever 1. Pour être sur d'obtenir une date valide, je passe
par la fonction DateSerial(année,mois,jour).

Sub unmoisplustot()
Dim ladate As Date
Dim lejour As Integer, lemois As Integer
Dim lannee As Integer
lejour = 1
lemois = Month(Date) - 1
lannee = Year(Date)
ladate = DateSerial(lannee, lemois, lejour)
End Sub



Donc
"ced" a écrit dans le message de
news:
Bonjour,
Je commencerai par me présenter,
J'utilise au quotidien pour mon travail Excel et VB afin de créer de
macro

applications. Mes connaissances en la matière s'accroient mais sont
limitées

par un manque d'aide direct. Mon post concerne en fait mon problème
suivant,

je souhaite disposer d'une variable correspondant au premier jour du
mois

précédent (ex. : 01/09/2004), pour y parvenir je crées une fonction
sur

Excel qui est :


=CONCATENER("01/";SI((MOIS(AUJOURDHUI())-1)<10;CONCATENER("0";MOIS(AUJ

OURDHUI())-1);MOIS(AUJOURDHUI()-1));
_

CONCATENER("/";SI((MOIS(AUJOURDHUI())-1);ANNEE(AUJOURDHUI())-1;ANNE

E(AUJOURDHUI()))))

ensuite sur VBA je mets ma variable en date et je la fais
correspondre à la

cellule contenant la fonction
Ma question est : Peut-on faire la même chose uniquement en VB
Pour les solutions que vous m'apporteriez (éventuellement) ce serait
sympa

de me l'expliquer (pour tout ce qui pas forcement logique).
Merci beaucoup de votre aide




Avatar
Philo Hippo
je vous laisse vous debrouiller avec la function ci-dessous, dites moi si
vous avez quelques difficultes que ce soit.
Sub test()
Dim Mois_Dernier
Mois_Dernier= Format(Now, "mm") - 1
MsgBox Mois_Dernier,vbOKOnly
End Sub

Function GetStringDate(Optional WhatType As String)

Dim Mois_Dernier , Todays_Date, Today_Day_No, Todays_Month_Year,
Time_Now, Date_Suffix


Todays_Date = Format(Now, "dddd, d")
Todays_Month_Year = Format(Now, " mmmm yyyy") '
Mois_Dernier = Format(Now, "mm") - 1
Time_Now = Format(Time, "h:mm:ss")
Date_Suffix = ""

If Today_Day_No = 1 Or Today_Day_No = 21 Or Today_Day_No = 31 Then
Date_Suffix = "st"
ElseIf Today_Day_No = 2 Or Today_Day_No = 22 Then
Date_Suffix = "nd"
ElseIf Today_Day_No = 3 Or Today_Day_No = 23 Then
Date_Suffix = "rd"
Else
Date_Suffix = "th"
End If

If WhatType <> "" Then
Select Case WhatType
Case "DateAndTimeOnly"
GetStringDate = Todays_Date & Date_Suffix & "" _
& Todays_Month_Year _
& " at " & Time_Now
Case "ExpiryDateOnly"
Todays_Date = Format(Now - 1, "ddd, d") ' & ", " &
Format(Now, "dd,d")
Todays_Month_Year = Format(Now, " mmm yyyy")
GetStringDate = Todays_Date & Todays_Month_Year & " " &
Time_Now & " GMT"
Case Else
End Select
Else
GetStringDate = " This File Was Automatically Generated On: " _
& vbNewLine & "' " _
& Todays_Date & Date_Suffix & "" _
& Todays_Month_Year _
& " at " & Time_Now
End If
End Function

--

Hope that helps,

Phil

------------------------------------------

IT Analyst
SE1, London, UK,

http://uk.geocities.com/philippeoget
philippeoget at yahoo dot com

Programming Excel: <a
href="http://uk.geocities.com/philippeoget/xl/InternetLinkOrganiser.zip"
target="_blank">The Excel A2Z Project: </a>
http://uk.geocities.com/philippeoget/a2z/

"ced" wrote in message
news:
Bonjour,
Je commencerai par me présenter,
J'utilise au quotidien pour mon travail Excel et VB afin de créer de macro
applications. Mes connaissances en la matière s'accroient mais sont
limitées

par un manque d'aide direct. Mon post concerne en fait mon problème
suivant,

je souhaite disposer d'une variable correspondant au premier jour du mois
précédent (ex. : 01/09/2004), pour y parvenir je crées une fonction sur
Excel qui est :


=CONCATENER("01/";SI((MOIS(AUJOURDHUI())-1)<10;CONCATENER("0";MOIS(AUJOURDHU

I())-1);MOIS(AUJOURDHUI()-1));
_

CONCATENER("/";SI((MOIS(AUJOURDHUI())-1);ANNEE(AUJOURDHUI())-1;ANNEE(AUJO

URDHUI()))))

ensuite sur VBA je mets ma variable en date et je la fais correspondre à
la

cellule contenant la fonction
Ma question est : Peut-on faire la même chose uniquement en VB
Pour les solutions que vous m'apporteriez (éventuellement) ce serait sympa
de me l'expliquer (pour tout ce qui pas forcement logique).
Merci beaucoup de votre aide




Avatar
AV
....premier jour du mois précédent (ex. : 01/09/2004),
ÚTE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())-1;1)


..... Peut-on faire la même chose uniquement en VB
MsgBox DateSerial(Year(Date), Month(Date) - 1, 1)


AV