Selection d’un onglet via un menu déroulant

Bonjour à tous,

J’essaye de rédiger une macro pour faire apparaitre un menu déroulant pour sélectionner un onglet dans un fichier à partir d’un UserForm.

Mon code me liste bien tous les onglets présents dans le fichier mais lorsque j’essaye de cliquer sur un onglet, le code ne se poursuit pas et je me retrouve en boucle sur le menu de sélection des onglets.

Je n’arrive pas à identifier d’où pourrait venir le problème… je vous joins le fichier avec l’extrait du code en question, si quelqu’un pouvait m’indiquer comment corriger ce problème ?

Merci pour votre aide

28selection-onglet.xlsm (153.21 Ko)

Bonjour,

Voir ci-joint.

Bonjour,

Au vu de votre fichier je n'ai pas trop compris ce que vous voulez avec votre liste déroulante. Elle doit être sur une feuille ?

Sinon, j'aurais putôt fait comme ceci

1. Dans l'USF

Private Sub UserForm_Initialize()
Dim ws As Worksheet
  For Each ws In ThisWorkbook.Worksheets
        Me.ListBox1.AddItem ws.Name
    Next ws
End Sub

2. Dans votre module, un code relié à un bouton

Sub ouvrirUSF
UserForm1.Show
End sub

3. Après vous cliquez dans la listbox, vous voulez faire quoi excatement ? Si c'est ouvrir l'onglet depuis la listbox, faites ceci

- remplacez le code dans l'USF par ceci

Private Sub ListBox1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    RechOnglet = ListBox1.List(ListBox1.ListIndex, 0)
    Unload Me
    Call Select_onglet
End Sub

- Allez dans votre module.
--- Supprimez la variable Dim RechOnglet As String
--- Remplacez-là par Public RechOnglet As String
--- Placez cette nouvelle définition de variable juste avant (donc au dessus) de Sub Select_onglet()

Cordialement

Désolé, c’est vrai que mon message manquait de précisions et le fichier joint n’est que la partie du code ne fonctionnant pas.

En fait, l’objectif de la macro est de récupérer un onglet spécifique dans un fichier pour le traiter ensuite. Le problème est que cet onglet peut avoir différent nom, c’est pourquoi je veux proposer à l’utilisateur de le sélectionner lui-même si la macro ne trouve pas le nom par défaut.

L’idée si la macro ne trouve pas l’onglet est donc :

  • Ouvrir un menu listant les onglets du fichier sélectionné (étape OK)
  • L’utilisateur clique sur l’onglet en question (étape OK)
  • La macro reprend où elle s’était arrêtée. (c’est sur cette partie que la macro ne fonctionne pas)

Dan, j’ai essayé d’intégrer le point 3 de votre solution. Je n’ai plus la boucle sur mon UserForm mais après avoir sélectionné l’onglet, la macro reprend depuis le début alors que je souhaiterais qu’elle reprenne juste après le « On Error GoTo Absence_onglet »

Merci encore pour votre aide.

Re,

Voici ce que je comprends :

- Vous cliquez sur le bouton dans la feuille BA Sox qui exécute le code Select_onglet
- vous vérifiez que l'onglet "B1A SOX contrôle formules" est dans le fichier sélectionné
- Si non, on charge le nom des onglets du fichier sélectionné dans la listbox
- Vous sélectionnez un onglet dans la listbox (donc venant du fichier sélectionné)
- la variable RechOnglet prend le nom de l'onglet sélectionné (donc soit BA..., choix2, choix3, ....

que voulez-vous voulez faire car il y a deux possibilités : soit l'onglet existe dans le fichier depuis lequel vous cliquez sur le bouton, soit il n'existe pas.

C'est tout à fait ça. Pour la suite, si l'onglet existe et que l'utilisateur le sélectionne, la macro du module reprend le relais et déroule la suite à savoir la vérification si "PAS OK" en cellule B1.

Si l'onglet recherché n'est pas dans la liste, cela signifierait que l'utilisateur n'a pas chargé le bon fichier et donc en fermant la UserForm, il met fin à la macro.

En fait, reprenez mon point 3 ci-avant -> https://forum.excel-pratique.com/s/goto/1122305

- Dans le code Listbox1_click que je vous ai proposé, supprimez la ligne --> Call select_onglet
- Mettez la variable rechonglet comme décrit dans le point 3

Faites un test, dites moi le souci que vous avez.

Edit : Là j'en vois un, c'est si en B1 du fichier sélectionné vous avez un OK mais cela on peut le gérer

Rechercher des sujets similaires à "selection onglet via menu deroulant"