XL 2013 UserForm initialize

  • Initiateur de la discussion Initiateur de la discussion mvcs
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mvcs

XLDnaute Nouveau
Bonjour,
J'ai un problème avec un formulaire qui ne s'ouvre pas et qui donne le message suivant :
1031279

Ca doit être le code d'initialisation qui cloche car le deuxième formulaire (FormModif) encore vierge, s'affiche correctement.
Pour mieux comprendre, je joins le fichier test. C'est le FormNouv qui bug.
Je n'arrive pas à trouver ce que j'ai mal fait.
Ne maitrisant pas encore bien ces techniques, je me suis inspiré d'un autre fichier qui faisait à peu près la même chose mais j'ai dû loupé un truc.
Merci si quelqu'un peut m'aider.
Cordialement.
 

Pièces jointes

re

essaye comme ceci :

ComboBox1.List() = Array("", "PC", "DP", "PA", "PD", "MODIF", "TPA", "CU")
ComboBox1.ListIndex = 1
Set sh = Sheets(ComboBox1.Value)

de plus tu es sur que ceci est à sa place ?

Select Case ComboBox1.Value
Case "PC", "DP", "PA", "PD"
ComboBox4.AddItem sh.Range("A" & N).Value + 1
Case "MODIF", "TPA", "CU"
ComboBox4.AddItem ""
End Select

ne devrait tu pas attendre que l'utilisateur est fait son choix ?

il est bizarre ton code

a plus
 
Bonsoir le fil

Copie ce code Initialize en lieu et place du tien
VB:
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Dim N As Long, sh As Worksheet
ActiveWorkbook.Unprotect "calme"
For Each sh In Worksheets
    sh.Unprotect "calme"
Next sh
ComboBox1.List = Array("", "PC", "DP", "PA", "PD", "MODIF", "TPA", "CU")
ComboBox2.List = Array(vbNullString, "NS", "AL", "LJ", "MV")
ComboBox3.List = Array(19, 20, 21, 22, 23)
Controls("TextBox1").Visible = True: Controls("TextBox2").Visible = True
Controls("CommandButton1").Visible = True: Controls("CommandButton2").Visible = True
End Sub
ajoute également cette procédure (toujours dans l'userform)
VB:
Private Sub ComboBox3_Change()
Dim x&
Set sh = Sheets(ComboBox1.Value)
Select Case ComboBox1.Value
  Case Is = "PC", "DP", "PA", "PD"
  With sh
  x = .Cells(.Rows.Count, 2).End(3).Row
  End With
  Label9 = sh.Cells(x, 1) + 1
  Case Is = "MODIF", "TPA", "CU"
  Label9.Caption = vbNullString
End Select
End Sub
NB: Pour le testt, j'ai remplacé le ComboBox4 par un Label
(qui a pour nom Label9)

Je te laisse faire ces modifs et tester

PS: Sur mon PC, cela a fonctionné.
 
Merci Hervé et Jm pour votre aide.
J'avais effectivement des trucs bizarres et ton code JM m'a bien débloqué.
Je vais encore essayer d'améliorer le formulaire.
Je voudrais notamment pour la date, au lieu de la saisir à la main dans une textbox, j'aimerais la choisir dans un calendrier.
Existe-t-il un contrôle de ce type pour un userform ?
Je n'ai pas trouvé et j'ai regardé dans les forums, ça me semble compliqué.
En plus je travaille sur deux versions différentes d'Excel, 2013 sur le fixe, Office 365 sur le portable. Je sais pas si l'outil calendrier est compatible
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
Retour