[Calc] Sélection d'une feuille dans une boîte combinée

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
elcondor66530
Fraîchement OOthentifié
Messages : 1
Inscription : 17 nov. 2024 13:26

[Calc] Sélection d'une feuille dans une boîte combinée

Message par elcondor66530 »

Bonjour
Ceci est ma première participation, je suis désolé si je ne suis pas très clair
Je voudrais que dans une macro celle ci active une certaine feuille qui aurait le nom contenu dans une combobox d'une boite de dialogue.
Imaginons que je selectionne "Septembre" contenu dans une combobox d'une boite de dialogue, lorsque j'exécute la macro elle m'active la feuille nommée septembre.
Allons soyons exigeant si en plus la combobox pouvait afficher le nom des différentes feuilles exemple Janvier février mars etc ce serait l'idéal
J'espère que j'ai été clair dans ma demande
Je vous remercie je me doute que pour des gens habitués à faire des macros c'est très simple mais là je galère
LibreOffice 24.8.2.1 (*86)
Windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9580
Inscription : 28 août 2010 08:45

Re: Sélection d'un feuille dans calc

Message par micmac »

Bonjour et bienvenue,

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche.
Avez-vous remarqué comment étaient postées les autres questions ?

Lisez ce fil pour savoir quelle balise utiliser : sutra27295.html#27295

N'oubliez pas que les termes Macro, OpenOffice ne doivent pas être employés car il sont implicites. Essayez de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même au risque de voir votre sujet verrouillé.

Le titre de votre question n'est pas assez explicite ou ne reflète pas le problème que vous décrivez.
Nous l'avons donc modifié. En effet, lors d'une recherche, ce sujet risquait de passer inaperçu et donc de ne pas aider d'autres personnes ayant le même problème que vous. Des termes implicites comme macro, aide, problème ou OpenOffice ou Calc dans la section éponyme n'ont pas besoin d'être mentionnés.

Voici quelques astuces pour avoir un titre optimum : viewtopic.php?p=1002#p1002

La prochaine fois, pensez à bien choisir les termes du titre de votre question. N'oubliez pas qu'un titre clair et précis augmente vos chances d'obtenir des réponses plus rapidement.

Merci de votre collaboration.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 517
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] Sélection d'une feuille dans une boîte combinée

Message par Noonours »

Bonjour elcondor66530, le forum
Un code vite-fait ci dessous avec quelques commentaires; J'ai choisi d'utiliser des "ListBox" plutôt que des "ComboBox", ces dernières étant inutiles si tu ne saisis pas directement une entrée dans la liste.

Code : Tout sélectionner

Sub Main
 oDoc = ThisComponent
 
 '***** création de l'objet dialogue
 DialogLibraries.loadLibrary("Standard")
 oDlg = CreateUnoDialog(DialogLibraries.getByName("Standard").getByName("Dialog1"))
 
 '**** alimentation de la ListBox avec le nom des feuilles du classeur
 LesFeuilles = oDoc.Sheets
 ListeFeuilles = LesFeuilles.ElementNames
 oDlg.getControl("ListBox1").AddItems(ListeFeuilles,0)
 oDlg.getControl("ListBox1").SelectItemPos(0, True) 'on sélectionne le 1er élément
 
 '**** lancement du dialogue et récupération de la valeur sélectionnée (si clic sur OK)
 If oDlg.Execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK then
 	LaFeuille = oDlg.getControl("ListBox1").SelectedItem
 	oDoc.CurrentController.ActiveSheet = Lesfeuilles.GetByName(LaFeuille)
 endif
 
 oDlg.dispose
End Sub
Et le fichier qui va avec:
Noonours_elcondor66530.ods
Mais je me demande si l'utilisation de liens hypertexte ne serait pas plus appropriée, difficile à dire sans fichier exemple... (cf. ma signature)

Cordialement,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 24.2.5.2 et OpenOffice 4.1.15 sous Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Sélection d'une feuille dans une boîte combinée

Message par Dude »

Salut,

Y-a t-il réellement le besoin de recourir à une macro quand l'IHM le permet nativement avec le navigateur interne (F5) :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
JPL
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 17 mars 2012 10:16

Re: [Calc] Sélection d'une feuille dans une boîte combinée

Message par JPL »

Une variante encore plus simple à la proposition de Dude:

un clic droit sur le signe "+" (en bas à gauche) permettant d'insérer une nouvelle feuille de calcul affiche la liste des feuilles du fichier et permet d'en sélectionner une nouvelle.
Kubuntu 22.04 / LibO 24.2
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO) - Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC