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é), 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:
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 !??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 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 [b]<== [u]c'est ici que l'erreur était levée[/u][/b] 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
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 à vous !![]()
Partager