Comment activer une feuille de classeur à partir d'une combobox
Résolu
Bonjour,
Je possède un classeur de 15 feuilles qui représentent mes références et j'aimerai savoir quel code je dois mettre pour activer la feuille sélectionnée dans ma liste déroulante combobox. Je possède Excel 2010 . Je n'arrive pas à trouver ce problème sur le forum.
Cordialement
Je possède un classeur de 15 feuilles qui représentent mes références et j'aimerai savoir quel code je dois mettre pour activer la feuille sélectionnée dans ma liste déroulante combobox. Je possède Excel 2010 . Je n'arrive pas à trouver ce problème sur le forum.
Cordialement
Configuration: Windows / Internet Explorer 11.0
3 réponses
-
ContributeurBonjour,
Une autre manière de procéder au changement de sélection dans la ComboBox.
Il faut que les valeurs liées aux TextBox soient dans les même cellules de chaque feuille:
Option Explicit Private Sub ComboBox1_Change() Sheets(ComboBox1.Value).Activate TextBox1.Text = ActiveSheet.Range("A1").Value 'on affiche les valeurs TextBox2.Text = ActiveSheet.Range("A2").Value 'on affiche les valeurs End Sub Private Sub UserForm_Initialize() Dim f As Worksheet For Each f In ThisWorkbook.Worksheets ComboBox1.AddItem (f.Name) 'on rempli la ComboBox Next f ComboBox1.ListIndex = 0 'on affiche le 1er index de la ComboBox End Sub
-
-
-
ContributeurLe code que je t'ai donné fonctionne correctement. Il faut voir de ton coté le reste du code. Il se peut que ce soit une variable qui n'est pas déclaré ou avec un nom protégé (faisant partie de vba comme Date, Name etc.) .
Donc poste la totalité de ton code pour que l'on est une vue d'ensemble de ton problème. -
ContributeurEn cherchant un peu, j'ai trouvé cela. Regarde si cela correspond à ton cas!
https://fr.wikiversity.org/wiki/Macros-commandes_VBA/D%C3%A9bogage#Erreur_d'ex%C3%A9cution_'70':_Acc%C3%A8s_refus%C3%A9
en lisant ces lignes, cela proviendrait de ta ComboBox qui n'est pas vide!
@+ -
ContributeurTa Combobox est déjà remplie!
Ce n'est pas nécessaire de la remplir de nouveau.
Tu as 2 fois l'évenement :
Private Sub UserForm_Initialize()
Il suffit de mettre cela:
Private Sub ComboBox1_Change() Sheets(ComboBox1.Text).Select Me.TextBox1.Value = ActiveSheet.Range("N5") Me.TextBox2.Value = ActiveSheet.Range("O5") End Sub 'inscription du stock en cours O5 et adressage depot Private Sub UserForm_Initialize() ComboBox1.ListIndex = 1 End Sub
Dans la feuille Listes à la ligne 6 changer 36 par 33
voilà pour l'instant ce qui te permettra de faire tourner tes macros
-