Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 La fonction date/year

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Bonjour,

Je n'arrive pas à transcrire la fonction Excel : DATE(ANNEE('1 - Feuille'!F6);7;1) en VBA.
En faite, je souhaite récupérer la date comme [G6].Value=date(year([F6]),7,1) mais cela ne marche pas.

Merci pour votre aide.
 
Solution
Code:
Sub Date_de_bas()
With Sheets("1 - Feuille").[F5]
    If Not IsDate(CStr(.Value)) Then mois = "" Else mois = Month(.Value)
 End With
 Select Case mois
    Case 1, 2, 3: [F9].Value = DateSerial(Year:=Year([F5]), Month:=7, Day:=1)
    Case 4, 5, 6: [F9].Value = DateSerial(Year:=Year([F5]), Month:=10, Day:=1)
    Case 7, 8, 9: [F9].Value = DateSerial(Year:=Year([F5] + 1), Month:=1, Day:=1)
    Case 10, 11, 12: [F9].Value = DateSerial(Year:=Year([F5] + 1), Month:=4, Day:=1)
    Case Else: [F9].Value = ""
 End Select
End Sub
Bonjour Marieparis, le forum

avec une date en F6

Cordialement, @+
VB:
[G6].Value = DateSerial(Year:=Year([F6]), Month:=7, Day:=1)
Merci Yeahou,

Voici mon code :
VB:
Sub Date_de_bas()
 Dim rSrc As Range
 Set rSrc = Sheets("1 - Feuille").[F5]
 mois = Month(rSrc)
 Select Case mois
 Case 1, 2, 3
 [F9].Value = DateSerial(Year:=Year([F5]), Month:=7, Day:=1)
 Case 4, 5, 6
 [F9].Value = DateSerial(Year:=Year([F5]), Month:=10, Day:=1)
 Case 7, 8, 9
 [F9].Value = DateSerial(Year:=Year([F5] + 1), Month:=1, Day:=1)
 Case 10, 11, 12
 [F9].Value = DateSerial(Year:=Year([F5] + 1), Month:=4, Day:=1)
 Case Else
 [F9].Value = ""
 End Select
End Sub

Il marche bien, mais quand je supprime la date en F5, je reçois l'erreur :


Est-ce que vous connaissez comment gérer ce genre d'erreur dans le code ?

Merci beaucoup pour votre aide !
 
Bonsoir,
Comment récupérer le mois de [F5] si sa valeur est null?
Code:
Set rSrc = Sheets("1 - Feuille").[F5]
 mois = Month(rSrc)

Fait un test de la valeur de [F5] avant de continuer !
Merci beaucoup,

J'ai amélioré le code :
VB:
Sub Date_de_bas()
 Dim rSrc As Range
 Set rSrc = Sheets("1 - Feuille").[F5]
 mois = Month(rSrc)
 If Not IsNull(mois) Then
 Select Case mois
 Case 1, 2, 3
 [F9].Value = DateSerial(Year:=Year([F5]), Month:=7, Day:=1)
 Case 4, 5, 6
 [F9].Value = DateSerial(Year:=Year([F5]), Month:=10, Day:=1)
 Case 7, 8, 9
 [F9].Value = DateSerial(Year:=Year([F5] + 1), Month:=1, Day:=1)
 Case 10, 11, 12
 [F9].Value = DateSerial(Year:=Year([F5] + 1), Month:=4, Day:=1)
 Case Else
 [F9].Value = ""
 End Select
 Else
 [F9].Value = ""
 End If
End Sub

Mais quand je supprime la date en F5, je reçois la même erreur :


Voici le code pour déclencher la procédure (sur la feuille 1) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    
    If Not Intersect(Target, Range("F5")) Is Nothing Then
        Call Date_de_bas
    End If
    
End Sub

Merci pour votre aide !
 

Pièces jointes

  • 1635260563044.png
    8.1 KB · Affichages: 11
Code:
Sub Date_de_bas()
With Sheets("1 - Feuille").[F5]
    If Not IsDate(CStr(.Value)) Then mois = "" Else mois = Month(.Value)
 End With
 Select Case mois
    Case 1, 2, 3: [F9].Value = DateSerial(Year:=Year([F5]), Month:=7, Day:=1)
    Case 4, 5, 6: [F9].Value = DateSerial(Year:=Year([F5]), Month:=10, Day:=1)
    Case 7, 8, 9: [F9].Value = DateSerial(Year:=Year([F5] + 1), Month:=1, Day:=1)
    Case 10, 11, 12: [F9].Value = DateSerial(Year:=Year([F5] + 1), Month:=4, Day:=1)
    Case Else: [F9].Value = ""
 End Select
End Sub
 
Merci, ça marche !
J'ai une anomalie sur la ligne Year([F5] + 1) : pour incrémenter l'année de 1, faudrait-il d'ajouter la fonction sum ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
258
Réponses
7
Affichages
194
  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
114
Réponses
4
Affichages
118
Réponses
6
Affichages
354
Réponses
6
Affichages
300
  • Question Question
Microsoft 365 figer une date
Réponses
11
Affichages
488
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…