Userform fonctionne plus

Bonjour,

J'utilise un Userform dans un classeur mais aujourd'hui il est capricieux!!!

Il bloque sur cette ligne :

.AddItem Format(NbD, "MMMM")
Private Sub UserForm_Initialize()
Dim Y As Integer
Dim M As Byte, D As Byte, NbD As Integer
Dim I As Byte
Me.Caption = T
With Me.ListBox1
    For Y = 2010 To 2050
    .AddItem Y
    Next
End With

With Me.ListBox2
    For M = 1 To 12
        Select Case M
            Case 1, 3, 5, 7, 8, 10, 12: D = 31
            Case 2: D = 28
            Case Else: D = 30
        End Select
     NbD = NbD + D
    .AddItem Format(NbD, "MMMM")
    .Visible = False
    Next
End With

End Sub

Merci de votre aide

Bonjour,

Cela ne devrait pas, au niveau code... mais utilise plutôt :

    .AddItem MonthName(M)

Cela réduira ton code.

(Et pour tes deux ListBox, une mise en tableau et affectation par List serait plus rapide...)

Cordialement.

edit : tu n'as pas besoin de répéter .Visible = False dans la boucle ! Une fois suffit (hors boucle).

Bonjour,

Bonjour MFerrand,

Tu devrais avoir un UserForm de nouveau capricieux en 2020.

Cdlt.

Merci de ton aide...

Les macros du classeur ne fonctionne plus.

Le terme "Format" apparait dans plusieurs codes et à chaque ca bloque dessus...je ne comprends pas pourquoi

Voici mon fichier

https://www.cjoint.com/c/HBnluqeNBXi

Pas d'erreur à l'ouverture, et les mois sont correctement affectés, cela ne vient donc pas de là !

(mais je maintiens ma proposition de simplification...)

bonjour,

Tu n'aurais pas changé d'ordi, de version Office ou changé version de Windows.

Dans le menu VBA regarde dans Outils > Références... si l'une d'elle n'est pas déclarée manquante.

Si c'est le cas décoche là. Ça devrait suffire.

Et si ça ne suffit pas essaie de cocher la même référence existant dans la liste mais avec un N° plus récent.

A+

Bonjour,

Bonjour MFerrand,

Tu devrais avoir un UserForm de nouveau capricieux en 2020.

Cdlt.

Effectivement j'ai une référence manquante :

"Microsoft Windows Common Controls 2 6.0 (sp6)

Du coup j'ai une autre référence et avec celle ci ca fonctionne :

" Microsoft Outlook View Control"

Re,

Tous les 4 ans, nous avons une année bissextile.

Le mois de février comporte alors 29 jours.

Cdlt.

J'avais eu ce réflexe aussi au départ, mais il opère sur une suite : 31 - 59 - 90 - 120 - 151 - 181 - 212 - 243 - 273 - 304 - 334 - 365 qui correspondrait en théorie au dernier jour de chaque mois, dans le cas du 29 février, ça décalerait d'un jour en moins donc en restant dans le même mois. Mais il opère sur l'année 1900 ! qui pour Excel est à tort bissextile, mais pas pour VBA qui commence 1900 avec un jour de décalage sur Excel, la suite correspond donc à l'avant-dernier jour de chaque mois de 1900.

Mais on peut tout de même faire plus simple pour lister les mois... et en outre pour l'usage qui en est fait, il n'y a nul besoin de les lister dans une ListBox ! On pourrait donc économiser la ListBox et cette procédure.

Je n'ai pas d'erreur de référence car les Common Controls... sont activés chez moi, mais je n'ai cependant pas vu de contrôle s'y rattachant ?

Re,

A MFerrand,

J'ai donc écrit une c******e...

Excel, les dates, toujours les dates...

Bonne journée.

Effectivement j'ai une référence manquante :

"Microsoft Windows Common Controls 2 6.0 (sp6)

Du coup j'ai une autre référence et avec celle ci ca fonctionne :

"Microsoft Outlook View Control"

"Microsoft Windows Common Controls 2 6.0 (sp6)" n'existe pas sur toutes les config : Avec 2016 Pro par exemple on ne la trouve pas. Je suppose que comme ce sont des instruction basiques (Format, Date, Str...), leur contenu a été intégré dans d'autres dll...

Pas sur que "Microsoft Outlook View Control" serve à quelque chose dans cette situation. Désactiver la référence manquante aurait du suffire... En tout cas avec cette dll, je n'ai jamais réussi à insérer le contrôle Date d'Outlook par exemple...

Bref c'est de plus en plus le foutoir chez Crosoft et comme en plus l'aide est n'est plus assuré depuis 2016. YAKA se dem... comme on peut !

A+

Rechercher des sujets similaires à "userform fonctionne"