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

Quinzaine: fonction en VBA Excel

  • Initiateur de la discussion Initiateur de la discussion yusuf1
  • Date de début Date de début

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 !

Y

yusuf1

Guest
Bonjour,

je viens de créer une fonction en VBA Excel qui prends comme argument une date de base et retourne la première quinzaine du mois de la date en argument.

Exemple :
Date de base = 21/03/2011
Quinzaine retournée = Du 01/03/2011 au 15/03/2011

Mon problème c’est que je veux que la quinzaine retournée soit de la forme :
Du 01/03/11 au 15/03/11
Merci d'avance pour vos réponses et suggestions.


Function quinzaine(BaseDate As Date) As String
Dim debut As Date
Dim fin As Date

debut = DateSerial(Year(BaseDate), Month(BaseDate), 1)
debut = Format(debut, "dd/mm/yy")
fin = DateSerial(Year(debut), Month(debut), 15)
fin = Format(fin, "dd/mm/yy")
quinzaine = "Du " & debut & " au " & fin
End Function
 
Re : Quinzaine: fonction en VBA Excel

Bonsoir Yusuf1 et bienvenue 🙂,
C'est normal, tes Format ne servent à rien vu que tes variables sont en Date 😛
Code:
Function quinzaine(BaseDate As Date) As String
Dim debut As Date
Dim fin As Date
debut = DateSerial(Year(BaseDate), Month(BaseDate), 1)
fin = DateSerial(Year(debut), Month(debut), 15)
quinzaine = "Du " & Format(debut, "dd/mm/yy") & " au " & Format(fin, "dd/mm/yy")
End Function
Bonne soirée 😎
 
Re : Quinzaine: fonction en VBA Excel

Bonjour,
Quelquechose comme :
VB:
Function quinzaine(BaseDate As Date) As String
Dim debut As Date, fin As Date
Dim debutS As String, finS As String
Application.Volatile
debut = DateSerial(Year(BaseDate), Month(BaseDate), 1)
debutS = CStr(Format(debut, "dd/mm/yyyy"))
fin = debut + 15
finS = CStr(Format(fin, "dd/mm/yyyy"))
quinzaine = "Du " & debutS & " au " & finS
End Function
Il faut encore ajouter les choix de quinzaine
A+
 
Dernière édition:
Bonjour à tous,

Avec une petite modification pour la quinzaine
Code:
Function quinzaine(BaseDate As Date) As String
Dim debut As Date, fin As Date
Dim debutS As String, finS As String
Application.Volatile
If Day(BaseDate) > 15 Then
debut = DateSerial(Year(BaseDate), Month(BaseDate), 16)
debutS = CStr(Format(debut, "dd/mm/yyyy"))
fin = DateSerial(Year(BaseDate), Month(BaseDate) + 1, 1) - 1
finS = CStr(Format(fin, "dd/mm/yyyy"))
quinzaine = "Du " & debutS & " au " & finS
Else
debut = DateSerial(Year(BaseDate), Month(BaseDate), 1)
debutS = CStr(Format(debut, "dd/mm/yyyy"))
fin = debut + 14
finS = CStr(Format(fin, "dd/mm/yyyy"))
quinzaine = "Du " & debutS & " au " & finS
End If
End Function

JHA
 

Pièces jointes

Excellent

je voudrais l'intégrer à un fichier d'extraction
Code:
Sub ExtractQuinzaine()


Dim L%, t(), k$, temp()
   
    With Sheets("TRESORERIE")
   
        L = .[A35000].End(xlUp).Row
        t = .Range(.Cells(2, 1), .Cells(L, 29)).Value
        For i = LBound(t) To UBound(t)
            If t(i, 25) < 0 And t(i, 18) <= Date Then
                If k = "" Then
                    k = i
                    Else: k = k & ":" & i
                End If
            End If
        Next i
    End With
    If k <> "" Then
        With Sheets("RGT")
            .Range(.Cells(2, "b"), .Cells(.[b65000].End(xlUp).Row, "k")).Clear
            temp = Application.Index(t, Application.Transpose(Split(k, ":")), Array(1, 2, 5, 6, 8, 15, 16, 17, 18))
            With .[b2].Resize(UBound(temp), UBound(temp, 2))
                .NumberFormat = "@"
                .Value = temp
            End With
        End With
    End If
End Sub

Le but du jeu :
Intégrer dans la colonne A : quinzaine (de la colonne 18 de la BDD) et de créer un regroupement (total par Quinzaine)

Est -ce jouable ?
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
331
Réponses
5
Affichages
828
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
427
Réponses
3
Affichages
404
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…