ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur "OK"

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 !

blackstrange

XLDnaute Nouveau
Bonjour le forum,😛

J'ai déjà lu plein de posts sur votre super forum et j'ai décidé de m'inscrire car j'ai un petit souci et je ne trouve pas la solution..

J'ai créé un userform avec une Listbox et un bouton "OK".
Mon but est de mettre les noms des feuilles dans la Listbox, que l'utilisateur en choisisse un puis clique sur ok pour y accèder. J'ai testé des macros pour insérer des choses dans ma Listbox mais même cela ne semble pas fonctionner (et pourtant j'ai lu beaucoup de discussions, quelque chose doit être mal écrite)...

Auriez-vous des pistes ?

Merci! 😀
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Bonjour Blackstrange, et bienvenue sur le forum

voir fichier joint
le renvoi vers la feuille sélectionnée se fait automatiquement
je te laisse décortiquer le code

à+
Philippe
 

Pièces jointes

Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Hello Black, Phlaurent,


Je te propose une petite macro qui te permet de remplire une listbox avec le nom des feuilles dans ton fichier.

Code:
Sub Rempli()



Dim FF As Worksheet


Nom = FF.Name
UserForm1.ComboBox1.AddItem Nom & i

i = i + 1
Next


End Sub

A adapter a tes variables (surtout le nom de la liste dans ton userform)

Meilleures salutations

Vorens
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Bonjour à tous les deux!

Je comprends la mécanique et le fonctionnement de vos deux codes, cependant cela ne fonctionne pas chez moi. J'enchaine les Userforms (accueil, demande de mots de passe) et mes feuilles sont cachées, est-ce à cause de ça que cela ne fonctionne pas ?

merci de votre aide.
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Re,


Les feuilles cachées et le feuille protégées c'est le genre d'information a spécifier dans la question car cela demande quelque ajout dans le code.

Pour les feuilles cachées normalement y'a pas de problème sauf si ton code fait appel a l'affichage. mais si tu y va seulement chercher des information en y spécifiant le nom genre sheets("toto").range("b3").value y'a pas de probleme.

Par contre, ta feuille protegée nous empeche d'aller y chercher les infos. Il te faut ajouter cette ligne en début de code

Code:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="toto", UserInterfaceOnly:=True
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Bon.. en fait j'avais mal écrit quelque-chose..
Donc cela fonctionne très bien, j'ai même réussi à faire en sorte que la personne sélectionne puis clique sur "ok". par contre je voudrais vérifier que quelque chose est bien choisit, sinon afficher une msgbox d'erreur. comment puis-je écrire cela ?

merci!
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Re,


Avec un truc du sytle:

If NOT UserForm1.ComboBox1.value = "" then

'le code si quelque chose est choisis

Else

MsgBox ("Rien de choisis")

End if


Meilleures salutations
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Rebonjour,

j'aurai une autre petite question concernant les Listbox,
Comment dans un userforms ajouter les valeurs contenues dans une seule colonne (en regardant quelle est la dernière cellule non vide).
Merci!
parce que je lis beaucoup d'exemples mais n'arrive pas à l'écire
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Hello Black,

Missa avoir rien compris à ta dernière question. Ajouter quoi ou pourquoi comment.

hypothèse 1: Il veux ajouter le contenu d'une colonne dans une liste box
hypothèse 2: Il veux ajouter la dernière cellule non vide d'une colonne dans un textbox
hypothèse 3: Rien de tout sa et j'ai vraiment rien compris à sa demande

A te relire.

Meilleures salutations
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Désolé, je n'avais pas relu..
Je souhaite ajouter le contenu d'une colonne à une listbox, je ne sais pas comment indiquer à excel de regarder toutes les lignes de cette colonne et de s'arrêter à la dernière non-vide.

Encore désolé..
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Re,

Pas de soucis 🙂

La ligne ci-dessous te permet de trouver le nombre de ligne (remplie) d'une colonne. Attention ne pas confondre nombre de valeur dans la colonne et dernière ligne utilisée. le code ci-dessous recherche la dernière ligne utilisée. si y'a des blanc dans le tableau il le verra pas.

Code:
NbLigne = Sheets("TaFeuille").Range("A" & "65535").End(xlUp).Row


Après, tu utilise la même boucle que présentée plus haut pour tes feuilles.

Code:
    For i = 1 To NbLigne
    Nom = Sheets("TaFeuille").Range("A" & i).Value
UserForm1.ComboBox1.AddItem Nom & i

Next

J'ai pas testé mais sa devrais être un truc du style.

Meilleures salutations

Vorens
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Bonjour,

Le code de phlaurent55 fourni en pièce jointe marche parfaitement.

Cependant dans mon cas, je dois sélectionner des feuilles fraichement créées par un TCD.

Le problème c'est que ces feuilles n'apparraissent pas dans le userform (je dois enregistrer le classeur avant).

Une solution sans passer par l'enregistrement ? (le fichier est lourd et mets un certain temps pour s'enregistrer...)

Merci d'avance
 
Re : ListBox avec noms des feuilles du classeur, choix d'une feuille puis clique sur

Bonjour Luden, et bienvenue sur le forum

pour ton problème il suffit de remplacer UserdForm1.Hide par Unload Me
Code:
Private Sub CommandButton1_Click()
Unload Me
End Sub


Private Sub ListBox1_Click()
Sheets(ListBox1.Value).Select
Unload Me
End Sub

Private Sub UserForm_Initialize()
For i = 1 To Sheets.Count
ListBox1.AddItem Sheets(i).Name
Next i
End Sub
à+
Philippe

Edit: La prochaine fois, crée un nouveau fil de discussion plutôt que squatter un autre qui a déjà 1 an
 
- 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

Retour