Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Concaténation en vba

4 réponses
Avatar
CAIRIS
Bonjour à tous et merci d'avance pour votre aide

J'ai une fonction dont le code est le suivant :

Public Function ExerciceComptable()
'
' Cette fonction calcule l'exercice comptable en fonction de la date testée
'
Dim MaDate As Date

If MaDate < #10/31/2007# And Year(MaDate) <= 10 Then
Year (MaDate) - 1& "-"&Year(MaDate)
ElseIf Year(MaDate) < 10 Then
Year (MaDate) & "-" & Year(MaDate) + 1
Else: Year (MaDate) & "-" & Year(MaDate)
End If
End Function

Il semble que vba n'aime pas mon code Year (MaDate) - 1& "-"&Year(MaDate)
et plus particulière &"-"& (l'objectif est d'obtenir = 2008-2009 par ex). ;
Que faut-il corriger ?
--
Catherine

4 réponses

Avatar
Eric
Bonjour,

Et comme ça ?

Public Function ExerciceComptable(MaDate As Date) As String
'
' Cette fonction calcule l'exercice comptable en fonction de la date testée
'
'Dim MaDate As Date

If MaDate < #10/31/2007# And Year(MaDate) <= 2010 Then
ExerciceComptable = Year(MaDate) - 1 & "-" & Year(MaDate)
ElseIf Year(MaDate) < 2010 Then
ExerciceComptable = Year(MaDate) & "-" & Year(MaDate) + 1
Else: ExerciceComptable = Year(MaDate) & "-" & Year(MaDate)
End If

End Function
Avatar
CAIRIS
En fait, après quelques corrections (...mais cela ne fonctionne toujours
pas...je suis vraiment une bille en VBA !) :

Public Function ExerciceComptable(MaDate As Date) As String
'
' Cette fonction calcule l'exercice comptable en fonction de la date testée

StrMaDate = MaDate

If MaDate <= #10/31/2007# And Month(MaDate) <= 10 Then
Year (MaDate) - 1 & "-" & Year(MaDate)
ElseIf MaDate <= #10/31/2007# Then
Year (MaDate) & "-" & Year(MaDate) + 1
Else
Year (MaDate)
End If

End Function

Cle plante toujours en me renvoyant une incompatibilité de type....Merci de
vos lumières
--
Catherine


"CAIRIS" wrote:

Bonjour à tous et merci d'avance pour votre aide

J'ai une fonction dont le code est le suivant :

Public Function ExerciceComptable()
'
' Cette fonction calcule l'exercice comptable en fonction de la date testée
'
Dim MaDate As Date

If MaDate < #10/31/2007# And Year(MaDate) <= 10 Then
Year (MaDate) - 1& "-"&Year(MaDate)
ElseIf Year(MaDate) < 10 Then
Year (MaDate) & "-" & Year(MaDate) + 1
Else: Year (MaDate) & "-" & Year(MaDate)
End If
End Function

Il semble que vba n'aime pas mon code Year (MaDate) - 1& "-"&Year(MaDate)
et plus particulière &"-"& (l'objectif est d'obtenir = 2008-2009 par ex). ;
Que faut-il corriger ?
--
Catherine


Avatar
CAIRIS
Avec un mix entre mes correctins et la bonne synthaxe proposée cela marche :



Public Function ExerciceComptable(MaDate As Date) As String
'
' Cette fonction calcule l'exercice comptable en fonction de la date testée
'
StrMaDate = MaDate
If MaDate < #10/31/2007# And Month(MaDate) <= 10 Then
ExerciceComptable = Year(MaDate) - 1 & "-" & Year(MaDate)
ElseIf MaDate < #10/31/2007# Then
ExerciceComptable = Year(MaDate) & "-" & Year(MaDate) + 1
Else: ExerciceComptable = Year(MaDate) & "-" & Year(MaDate)
End If

Encore merci pour ton aide
--
Catherine


"Eric" wrote:

Bonjour,

Et comme ça ?

Public Function ExerciceComptable(MaDate As Date) As String
'
' Cette fonction calcule l'exercice comptable en fonction de la date testée
'
'Dim MaDate As Date

If MaDate < #10/31/2007# And Year(MaDate) <= 2010 Then
ExerciceComptable = Year(MaDate) - 1 & "-" & Year(MaDate)
ElseIf Year(MaDate) < 2010 Then
ExerciceComptable = Year(MaDate) & "-" & Year(MaDate) + 1
Else: ExerciceComptable = Year(MaDate) & "-" & Year(MaDate)
End If

End Function



Avatar
Eric
Voir ma réponse précédente.
La ligne strDate ne sert à rien.
La fonction Year() retourne le rang de l'année sur 4 caractères donc il
te faut comparer à 2010 et non à 10. Enfin, il faut que tu affectes à ta
fonction la valeur calculée (ici la chaine de caractères) suivant les
cas de figure.

CAIRIS a écrit :
En fait, après quelques corrections (...mais cela ne fonctionne toujours
pas...je suis vraiment une bille en VBA !) :

Public Function ExerciceComptable(MaDate As Date) As String
'
' Cette fonction calcule l'exercice comptable en fonction de la date testée

StrMaDate = MaDate

If MaDate <= #10/31/2007# And Month(MaDate) <= 10 Then
Year (MaDate) - 1 & "-" & Year(MaDate)
ElseIf MaDate <= #10/31/2007# Then
Year (MaDate) & "-" & Year(MaDate) + 1
Else
Year (MaDate)
End If

End Function

Cle plante toujours en me renvoyant une incompatibilité de type....Merci de
vos lumières



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr