[VBA]Erreur de syntaxe ?? [Résolu]

Signaler
Messages postés
17
Date d'inscription
jeudi 17 novembre 2011
Statut
Membre
Dernière intervention
28 novembre 2011
-
Messages postés
17
Date d'inscription
jeudi 17 novembre 2011
Statut
Membre
Dernière intervention
28 novembre 2011
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
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)
Messages postés
17
Date d'inscription
jeudi 17 novembre 2011
Statut
Membre
Dernière intervention
28 novembre 2011

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...