Bonjour à tous :)
Voici mon problème (mon sujet était déjà pas mal explicite je pense ;)
J'ai deux fichiers Excel avec beaucoup de VB/VBA derrière. Dans un cas les macros se déroulent sans accrocs (désolés ;)), dans le deuxième cas j'ai droit à la fameuse erreur d'exécution 380 ("Impossible de définir la propriété .text", "Valeur de propriété non valide").
Donc mon problème ne se trouve pas vraiment dans cette erreur car j'ai réussi à la "corriger", mais dans le fait qu'il y'ait un comportement disctinct pour deux macros identiques... et j'aimerais bien savoir pourquoi afin que celà ne puisse pas se reproduire !
Voici le code en question:
Private Sub UserForm_Activate()
'lecture de la periode
m_sPeriode = GetPeriod()
With ComboBoxMonth
'Sélection de la période en cours
If HasValue(m_sPeriode) Then
.text = m_sPeriode <== c'est ici que l'erreur était levée
Else
.ListIndex = 0
End If
End With
End Sub
'*******************************************************************
'Initialisation de la fenetre
'*******************************************************************
Private Sub UserForm_Initialize()
Dim dDate As Date
Dim sYear As String
Dim i As Integer
Dim iFin As Integer
Dim sItem As String
On Error Resume Next
sYear = Format(Date, "yyyy")
iFin = CInt(Format(Date, "mm"))
'Remplissage avec un glissement sur une année
With ComboBoxMonth
For i = iFin To 1 Step -1
sItem = NumberToMonth(i) & " " & sYear
.AddItem (sItem)
Next
For i = 12 To (iFin + 1) Step -1
sItem = NumberToMonth(i) & " " & CStr(CInt(sYear) - 1)
.AddItem (sItem)
Next
End With
End Sub
En fait le problème semble venir du fait qu'il faille remplir la combo et initialiser la propriété text dans la même fonction (en l'occurence j'ai mis tout ces traitement dans l'activate et ça passe sans problème dans les deux cas). OR, si c'est vraiment le problème (classique pour les list et combo) pourquoi est-ce que celà fonctionne dans un cas et pas dans l'autre !??
Je teste évidemment les deux sur ma machine donc hardware et software sont identiques dans les deux cas... voyez vous une anomalie quelconque qui pourrait expliquer ce type de comportement ??
Merci de votre écoute dans tous les cas ! :D