[VBA]Erreur de syntaxe ??

Résolu
cs_herve06 Messages postés 17 Date d'inscription jeudi 17 novembre 2011 Statut Membre Dernière intervention 28 novembre 2011 - 17 nov. 2011 à 22:56
cs_herve06 Messages postés 17 Date d'inscription jeudi 17 novembre 2011 Statut Membre Dernière intervention 28 novembre 2011 - 19 nov. 2011 à 09:03
Bonsoir,

Je commence à programmer VBA (Office 2010 pour Mac). La boîte de dialogue comporte une ComboBox avec la date du jour que l'utilisateur peut éventuellement modifier. Voici un extrait du code que j'ai écrit:

'-----
'
' SetDaysinCombo: Met à jour la ComboBox "ComboDay" avec les paramètres Mois et Année
'
'-----

Sub SetDaysInCombo(Mois As String, Annee As Integer)
Dim LastDay As Integer
LastDay = DaysInMonth(Mois, Annee)
ComboDay.Clear
For i = 1 To LastDay
ComboDay.AddItem i
Next i
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
'
' Trouve la date du jour et remplit les valeurs par défaut des trois Combos
'
DateDebut = Date
JourActuel = Str(Day(DateDebut)) ' STRING
ComboDay.Value = JourActuel
MoisActuel = MonthName(Month(Date))
ComboMonth.Value = MoisActuel ' STRING
AnneeActuel = Str(Year(DateDebut))
AnneeSuivante = Str(Year(Date) + 1)
ComboYear.Value = AnneeActuel
'
' Trouve le nombre de jours dans le mois à cette date et initialise Combo
'
SetDaysInCombo(MoisActuel, Year(Date))

Au lancement, VB m'annonce une "Erreur de Compilation: Erreur de Syntaxe" qui reste incompréhensible. En bidouillant un peu, il semble que l'erreur de compilation disparaisse si j'écris

SetDaysInCombo(MoisActuel, Year(Date))=TRUE

ce qui est absurde a priori !

Quelqu'un a-t-il une idée pour me sortir de cette impasse ?

Merci d'avance,
Hervé

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 nov. 2011 à 00:53
Salut

La prochaine fois, pense à utiliser la coloration syntaxique - 3emle icone à droite = plus facile à relire.

Ton problème n'est que syntaxique :
Quand tu veux appeler une Sub, deux solutions :
NomDeLaSub Les, Paramètres
ou
Call NomDeLaSub (Les, Paramètres)
Il n'y a que dans ce dernier cas qu'il faut utiliser des parenthèses.
Perso, j'en ai pris l'habitude afin d'en utilise rpartout à chaque fois, je trouve ça plus lisible.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_herve06 Messages postés 17 Date d'inscription jeudi 17 novembre 2011 Statut Membre Dernière intervention 28 novembre 2011
19 nov. 2011 à 09:03
Merci beaucoup, ça marche !!

En fait, quand on met des parenthèses l'interpréteur VB attend qu'on assigne la valeur de retour à une variable. Quand on ne met pas de parenthèses, tout va bien...
0
Rejoignez-nous