J'ai une situation étrange que je n'ai pas été en mesure de trouver la solution.Excel 2016 VBA classeur active mais désactive puis
Je traite de grandes quantités de données sur plusieurs classeurs qui doivent être ouverts (disons 3 classeurs). J'ai besoin d'un Userform pour pouvoir interagir avec les 3 classeurs.
J'ai fait un ComboBox capable de le faire par lorsque le UserForm est initialisé, il ajoutera les noms des classeurs à la Combobox:
'* initialize the userform *'
Private Sub UserForm_Initialize()
Dim wb As Workbook
'* get the name of all the workbooks and add to the combobox '*
For Each wb In Application.Workbooks
Me.PrimaryBook_ComboBox.AddItem wb.name
Next wb
Me.PrimaryBook_ComboBox = ActiveWorkbook.name
End Sub
Lors d'un changement, il va activer ce classeur:
Private Sub PrimaryBook_ComboBox_Change()
Application.ScreenUpdating = True
Dim wb As Workbook
If Me.PrimaryBook_ComboBox <> "" Then
Set wb = Workbooks(Me.PrimaryBook_ComboBox.Text)
wb.Activate
End If
Application.ScreenUpdating = False
End Sub
(ce userform a deux refedits en elle)
Lorsque je sélectionne un autre classeur dans la liste déroulante, il apporte ce classeur à l'avant comme il se doit. Mais dès que je clique dans l'une de mes boîtes de RefEdit, il revient au classeur d'origine ouvert en premier.
Voici une autre partie que je ne comprends pas, lorsque je charge cela dans Excel 2010, c'est sans faille. Je peux sélectionner le classeur que je veux et cliquer sur RefEdit et ce classeur restera activé.
Y a-t-il quelque chose qui me manque? Des astuces et/ou des trucs auxquels je n'ai pas pensé?
Merci
ne devriez pas Application.ScreenUpdating être défini comme False Then vrai? Vous l'avez dans l'autre sens – RADO
Je l'éteins dans ma macro qui appelle le formulaire, lorsque le formulaire est déchargé, je le rallume. Mais j'ai besoin de l'allumer lorsque j'active un classeur pour qu'il s'affiche à l'avant. Puis je l'éteins immédiatement (comme illustré) –
Mise à jour @RADO: il semble que le classeur qui est actif (ouvert à l'avant) est celui auquel l'utilisateur est lié. Si j'ai le livre 3 en avant et lance le userform, quand je change le livre pour, disons, book2 il va l'activer mais dès que je clique ailleurs sur le userform il retourne directement au livre 3. –