Rechercher : dans
Par :

[macro openoffice] programmation d'un msgbox

Dernière réponse le 5 déc 2006 à 22:59:14 Didier61, le 26 oct 2006 à 19:11:20 
 Signaler ce message aux modérateurs

<ccm>bonjour à tous
Je me lance dans les macos sous OOo 2.0.4 mais je débute. Dans Calc sur la 1ere feuille j'ai positionné des boutons qui me peremettent d'afficher l'une des dix autres feuilles une fois sur la feuille désirée j'ai plusieurs boutons qui me permettent d'imprimer une sélection. je ne trouve pas les solutions pour les problèmes suivants :
1) L'enregistreur prend en compte dans la macro le numéro de la feuille pour la faire apparaître mais je voudrais utiliser le nom de la feuille.

2) Je n'arrive pas insérer un msgbox avec deux boutons ok et annule afin de poser une question et confirmer l'impression ou l'annuler.
merci de votre aide
Didier

Configuration: Windows Xp - OOo 2.0.4

Meilleures réponses pour « [macro openoffice] programmation d'un msgbox » dans :
Insérer une barre de progression sous PowerPoint VoirINSERER UNE BARRE DE PROGRESSION Pour permettre de visualiser l'avancement d'un exposé, une barre de progression peut être affichée en bas du diaporama. Voici comment procéder: Une fois le diaporame réalisé, allez dans Outils, Macro et Visual...
Désactiver l'exécution de certains programmes au démarrage VoirDésactiver l'exécution de certains programmes au démarrage - Windows 98/Me/2000/XP/Vista Avec msconfig Avec WinPatrol Avec Startuplite Avec CCleaner Remarques Lorsque vous installez des logiciels, certains s'exécutent à chaque...
Supprimer complètement un programme VoirMalgré la désinstallation d'un programme, il se peut que des clés de registre ou des fichiers soient encore présents sur le PC. Si la méthode "classique" (clic droit/supprimer) ne fonctionne pas, il suffit d'utiliser l'éditeur du registre. Mise en...
Télécharger Super Macro VoirSuper Macro est un logiciel gratuit qui permet de créer des macros sous Windows afin de déclencher diverses actions automatiques. En plus d’être gratuit, ce logiciel est facile à utiliser et ne requiert aucune connaissance en programmation. On doit...
Télécharger MOREFUNC (Macro complémentaire EXCEL) VoirMorefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont compatibles avec Excel 95 à 2007. Elles ne sont pas portables sur d'autres plate-formes que Windows, ni sur d'autres...
Télécharger ProgDVB VoirLa diffusion de programme en numérique est de plus en plus en vogue depuis l'apparition de la connexion haut-débit. ProgDVB est un programme destiné à regarder des chaînes TV et à écouter des stations radio sur votre ordinateur. Il supporte le DVB-S...
Enterprise Resource Planning (ERP) - Progiciel de Gestion Intégr VoirIntroduction aux ERP Les ERP (en anglais Enterprise Resource Planning), aussi appelés Progiciels de Gestion Intégrés (PGI), sont des applications dont le but est de coordonner l'ensemble des activités d'une entreprise (activités dites verticales...
Introduction à la programmation des CGI VoirPrésentation de l'interface CGI Un script CGI (Common Gateway Interface, traduisez interface de passerelle commune) est un programme exécuté par le serveur web (on dit généralement « côté serveur »), permettant d'envoyer au navigateur de...
Analyste programmeur (développeur) VoirDéveloppeur Le métier de développeur (également nommé analyste-programmeur) consiste à concevoir et à développer une application informatique, c'est-à-dire transcrire un besoin en une solution informatique écrite dans un langage informatique....

1

lami20j, le 26 oct 2006 à 19:45:47
  • +4

Salut,

voilà pour msgbox

REM  *****  BASIC  *****

Sub Main
	dim repMsgBox as String
	'0 - seulement ok
	'1 - ok + annuler
	'2 - interromptre + réessayer + annuler
	'3 - oui + non + annuler
	'4 - oui + non
	'5 - réessayer + annuler
	'6 - ok
	
	'les icônes
	' 0 aucune
	' 16 message critique X
	' 32 Question ?
	' 48 Avertissement !
	' 64 Information i
	
	' choix du bouton par défaut
	' 0 le premier
	' 256 le 2ème
	' 512 le dernier
	
	' le type du message c'est la somme de 3 valeurs au choix
	
	'Ex : le type 3 avec question et le 2ème par défaut
	' 3 + 32 + 256 = 291
	repMsgBox=msgbox("Hello, je suis MsgBox",291)
	
	' ici je récupere le retour de msgbox
	msgbox repMsgBox


End Sub
lami20j

Répondre à lami20j

2

Didier61, le 26 oct 2006 à 20:29:26

Merci lami20j d'avoir épondu aussi rapidement mais mon problème n'est pas entièrement résolu ceci est le début de ma macro

sub Imp1
dim repMsgBox as string
repMsgBox=msgbox("Voulez-vous imprimer cet état ?",289)

mais quelles sont les fonctions qui doivent suivre de manière à ce que lorsque je clic sur le bouton annuler il sorte de la macro et si je clic sur ok il poursuive ma macro ci dessous

oDocument = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$26:$R$43"
dispatcher.executeDispatch(oDocument, ".uno:GoToCell", "", 0, args1())
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Selection"
args2(1).Value = true
args2(2).Name = "Collate"
args2(2).Value = false
dispatcher.executeDispatch(oDocument, ".uno:Print", "", 0, args2())
End sub

merci

Répondre à Didier61

3

lami20j, le 26 oct 2006 à 21:15:37
  • +2

Re,

REM  *****  BASIC  *****

Sub Main
' le msgbox retourne une valeur en fonction du bouton que tu utilises
' 1 pour ok
' 2 pour annuler
' à toi de découvrir le reste

	dim repMsgBox as String

	repMsgBox=msgbox("Hello, je suis MsgBox",1)
	
	
	'maintenant on va utiliser le retour du msgbox
	'donc en fonction du bouton utilisé on exécute quelque chose
	if repMsgBox=1 then
	   msgbox "Vous avez cliquez sur OK"
	elseif repMsgBox=2 then
	   msgbox "Vous avez cliques sur ANNULER"
	end If
End Sub
Et dans ton cas
REM  *****  BASIC  *****

Sub Main
' le msgbox retourne une valeur en fonction du bouton que tu utilises
' 1 pour ok
' 2 pour annuler
' à toi de découvrir le reste

	dim repMsgBox as String

	repMsgBox=msgbox("Voulez-vous continuer?",1,"Didier61 Macro")
	
	
	'maintenant on va utiliser le retour du msgbox
	'donc en fonction du bouton utilisé on exécute quelque chose
	if repMsgBox=1 then
	   oDocument = ThisComponent.CurrentController.Frame
		dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
		dim args1(0) as new com.sun.star.beans.PropertyValue
		args1(0).Name = "ToPoint"
		args1(0).Value = "$B$26:$R$43"
		dispatcher.executeDispatch(oDocument, ".uno:GoToCell", "", 0, args1())
		dim args2(2) as new com.sun.star.beans.PropertyValue
		args2(0).Name = "Copies"
		args2(0).Value = 1
		args2(1).Name = "Selection"
		args2(1).Value = true
		args2(2).Name = "Collate"
		args2(2).Value = false
		dispatcher.executeDispatch(oDocument, ".uno:Print", "", 0, args2()) 
	elseif repMsgBox=2 then
	   	msgbox "L'exécution a été annulée.",64,"Didier61 Macro"
	   	exit sub
	end If
End Sub
lami20j

Répondre à lami20j

4

Didier61, le 27 oct 2006 à 00:21:15

Encore merci à lami20j ça fonctionne bien et la macro est la suivante :

sub Imp1
dim repMsgBox as string
repMsgBox=msgbox("texte désiré",somme des 3 chiffre de choix, "éventuellement non de msgbox")
if repMsgBox=1 then

(texte de la macro que l'on veut voir exécuter ou non)

elseif repMsgBox=2 then
exit sub
end If
end sub

Répondre à Didier61

5

-pyer, le 5 déc 2006 à 22:31:36

Bonjour,
j'aimerais savoir comment tu programmes les boutons pour naviguer entre les différentes feuilles du classeur. je migre de lotus 123 vers calc et ne trouve pas cette fonctionnalité.
Merci
-pyer

Répondre à -pyer

6

 Didier61, le 5 déc 2006 à 22:59:14

Bonsoir -pyer
Sur une feuille de calc tu positionne un bouton pour chacune des feuilles sur lesquels tu veux avoir accès et tu associes chaque bouton à une macro comme indiqué ci-dessous :

dim monDocument As Object, lesFeuilles As Object, maFeuille As Object, maCellule As Object

Sub choix1 'choix 1 correspond au nom de ta macro
monDocument = thisComponent
lesFeuilles = monDocument.Sheets
mafeuille = lesFeuilles.getByName("feuille1") 'entre guillemets le nom de la feuille que tu désire obtenir
maCellule = maFeuille.getCellRangeByName("D5") ' l'adresse de la cellule que tu veux sélectionner enventuellement
monDocument.currentController.Select(maCellule)
End sub
Didier61

Répondre à Didier61
Collection CommentÇaMarche.net