[Résolu] [Calc] Fenêtre de dialogue avec plusieurs boutons de validation

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 !
maclode1950
Membre hOOnoraire
Membre hOOnoraire
Messages : 125
Inscription : 23 janv. 2017 18:18

[Résolu] [Calc] Fenêtre de dialogue avec plusieurs boutons de validation

Message par maclode1950 »

Bonjour,

Dans le cadre d'un projet je demande à l'utilisateur de choisir un document. Jusque là tout va bien, je le fais en utilisant

Code : Tout sélectionner

Application.FileDialog(msoFileDialogFilePicker).Show
L'individu choisit ainsi son fichier.
Sauf qu'ensuite, j'aimerai pouvoir proposer une seconde fenêtre qui demande à l'individu de choisir le type de document qu'il a sélectionné : est-ce, par exemple, fichier personnel, un fichier collectif, ou un fichier sensible.
Donc je m'oriente vers une boîte de dialogue type menu déroulant ou alors une fenêtre qui apparaitrait avec 3 boutons pour choisir le type de document.
En fonction du type de fichier choisi, il faudra que je renomme ce fichier en f_perso, f_coll, f_sensible.

Bon là où je bloque actuellement c'est surtout sur cette fenêtre avec le menu déroulant / fenêtre à boutons

Avez-vous une idée ?

Merci
Dernière modification par micmac le 03 juil. 2023 08:10, modifié 4 fois.
LibreOffice 7.3.6.2, Windows 11
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: [Basic] créer une boîte de dialogue avec menu déroulant

Message par Dude »

Salut,

Le code que tu exposes n'est pas du Basic.
Donc, tu viens de poster la question qui tue.
maclode1950 a écrit : 26 juin 2023 11:39 L'individu choisit ainsi son fichier.
Tout cela se règle avec le service FilePicker.
Tu constateras que la question est passée plusieurs fois sur ce forum depuis plus de 15 ans.
maclode1950
Membre hOOnoraire
Membre hOOnoraire
Messages : 125
Inscription : 23 janv. 2017 18:18

Re: [Basic] créer une boîte de dialogue avec menu déroulant

Message par maclode1950 »

Merci, mais je n'ai pas de problème pour faire choisir le fichier, tout fonctionne bien de ce côté mais c'est pour afficher ensuite une fenêtre avec plusieurs boutons, je m'essaie sur les userform mais sans succès.
Là je viens de créer une userform tout simple avec trois boutons mais comment la faire apparaitre dans mon programme ?
LibreOffice 7.3.6.2, Windows 11
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: [Basic] créer une boîte de dialogue avec menu déroulant

Message par Dude »

maclode1950 a écrit : 26 juin 2023 12:04 je m'essaie sur les userform mais sans succès
Ce terme est purement Microsoft et n'existe pas sous OpenOffice et ses dérivés.

Comme d'habitude plutôt qu'une seule ligne de code postée sans aucun contexte...
Image
Comment joindre un fichier au format ODF
Pense également à dépersonnaliser le fichier joint.
maclode1950
Membre hOOnoraire
Membre hOOnoraire
Messages : 125
Inscription : 23 janv. 2017 18:18

Re: [Calc] créer une fenêtre avec boutons dans une macro

Message par maclode1950 »

Oui, en effet ça sera plus simple.

Le principe rapidement,
On choisit le nombre de document (cellule G14). Par exemple 1, puis on clique sur email.
Cela ouvre une fenêtre pour choisir le document et c'est juste après que j'aimerais faire apparaître cet "userform" où l'individu puisse choisir le type de fichier via 3 boutons (A,B et C pour faire simple). S'il choisit A alors le fichier choisi sera renommé en A ...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.3.6.2, Windows 11
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] créer une fenêtre avec boutons dans une macro

Message par Dude »

Ton exemple n'est pas fonctionnel en l'état.
Il fait appel à une application Microsoft Outlook via l'automation (CreateObject).

Code : Tout sélectionner

Sub Email

Dim Outlook_App As Object
Dim msg As Object

Dim sign, pj As String
Dim i As Integer
Dim oDoc As Object 
Set Outlook_App = CreateObject("Outlook.Application")
set oDoc = ThisComponent 
Dim sh As Worksheet
Set sh = activesheet
 
    Set msg = Outlook_App.CreateItem(0)
Si tu t'obstines à vouloir faire du VBA alors forcément, tu vas te retrouver devant moult obstacles de ce type.
L'envoi par courriel est documenté dans un suprême de code.

Je t'ai dit d'utiliser le service FilePicker et je vois que ton code ne l'utilise pas.
maclode1950
Membre hOOnoraire
Membre hOOnoraire
Messages : 125
Inscription : 23 janv. 2017 18:18

Re: [Calc] créer une fenêtre avec boutons dans une macro

Message par maclode1950 »

Bon je vais remodeler tout ça alors.
Merci pour le conseil.
LibreOffice 7.3.6.2, Windows 11
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] créer une fenêtre avec boutons dans une macro

Message par Dude »

Comme toujours, il faut simplifier le document en se concentrant sur la seule problématique.
Ton problème ressemble étrangement à ce vieux suprême : viewtopic.php?f=15&t=6364

Voici un exemple qui lance un dialogue et affiche le bouton qui a été cliqué.

Code : Tout sélectionner

Global sMoi$, oDlg as object

Sub OuvreDialogue
	sMoi = "aucun bouton"
	cOK = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
	DialogLibraries.Loadlibrary("Standard")
	oBib = DialogLibraries.GetByName("Standard")
	zDlg = oBib.GetByName("Dialog1") 
	oDlg = CreateUnoDialog(zDlg)
	if oDlg.Execute = cOK then
		'Action à faire à la fermeture du dialogue
	endif

End Sub

Sub ClicBouton(oEvt)
	oSource = oEvt.Source
	oModel = oSource.getModel()
	sMoi = oModel.Label
	msgbox "Bouton reçu > " & sMoi
	oDlg.endExecute
End sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
maclode1950
Membre hOOnoraire
Membre hOOnoraire
Messages : 125
Inscription : 23 janv. 2017 18:18

Re: [Calc] créer une fenêtre avec boutons

Message par maclode1950 »

Merci pour cette aide !
LibreOffice 7.3.6.2, Windows 11