cs_herve06
Messages postés17Date d'inscriptionjeudi 17 novembre 2011StatutMembreDernière intervention28 novembre 2011
-
17 nov. 2011 à 22:56
cs_herve06
Messages postés17Date d'inscriptionjeudi 17 novembre 2011StatutMembreDernière intervention28 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 ?
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_herve06
Messages postés17Date d'inscriptionjeudi 17 novembre 2011StatutMembreDernière intervention28 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...