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

Configuration: Windows / Internet Explorer 11.0

3 réponses

  1. Contributeur
    Bonjour,

    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
    


    1
    1. Bonjour,
      Il n'y a pas de problème car toutes les feuilles de mon classeur sont identiques. Je fais l'essai et te confirme.
      Encore merci cela fait au moins une semaine que je cherche une solution
      0
    2. Jai copie ce code et maintenant j'ai le message Erreur d'exécution '70' . Accès refusé
      Ai je fait une mauvaise manip je ne comprends pas. Je recherche pourquoi ce message mais pas de chance
      Merci
      0
    3. Contributeur
      Le 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.
      0
    4. Contributeur
      Ta 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
      0