[Résolu] [Calc] Eviter message "Voulez vous vraiment...

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 !
Péna
Membre OOrganisé
Membre OOrganisé
Messages : 70
Inscription : 01 juin 2006 14:27
Localisation : Toulouse

[Résolu] [Calc] Eviter message "Voulez vous vraiment...

Message par Péna »

bonjour tout le monde! :D

j'ai cherché un peu partout sur le forum et dans la doc que j'ai, mais en vain... (peut être ai-je sauté les bonnes lignes, auquel cas je m'excuse de mon inattention :( )

je cherche la ligne de code me permettant d'éviter le message "Voulez-vous vraiment supprimer ...".

je programme en OOoBasic.

en fait j'ai une macro dans laquelle je propose à l'utilisateur d'écraser une feuille du classeur, et dans le cas où il répond par "oui", je supprime l'ancienne feuille. il m'affiche donc le message en question, qui pourrait effrayer l'utilisateur...

Si ça vous permets de mieux comprendre ce que je cherche, je sais que dans VBA la ligne est :

Code : Tout sélectionner

 
Application.DisplayAlerts = False
voila voila
encore désolé si j'ai pas trouvé le bon post dans le cas où il existerai déjà.

et merci d'avance
OOo 2.0.3 sous Windows XP SP2
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Message par bm92 »

Je ne comprends pas la situation. Si tu as programmé la question, tu peux aussi bien supprimer cette partie ?
Si le message provient du codage de l'enregistreur de macros, il vaut mieux faire un "vrai" codage utilisant l'API OpenOffice.
Péna
Membre OOrganisé
Membre OOrganisé
Messages : 70
Inscription : 01 juin 2006 14:27
Localisation : Toulouse

Message par Péna »

heu.....
lol je suis pas sûr de comprendre ce que tu comprends pas, héhé

je vais essayer d'être plus clair (c pas gagné):

en fait, j'utilise effectivement l'enregistreur pour cette partie, mais je peux faire un vrai code, ça devrait pas trop poser problême en cherchant un peu, c'est juste que j'essayer de gagner un peu de temps.. :wink: mais là n'est pas le soucis.

Globalement, je demande au préalable à l'utilisateur de charger une feuille, et je vérifie si elle n'est pas déjà dans le classeur, auquel cas, je lui demande si il veut écraser ou non.
attention, ça se corse (comme disait Napoléon :lol: ):
mais je n'écrase pas directement, en remplaçant une feuille par l'autre, je le fais en plusieurs fois (dû à d'autres étapes obligées...), donc là en l'occurence, je lui demande juste de virer la feuille existante, et de la remplacer par une nouvelle feuille vierge de nom : "Feuille2" prête à l'emploi.

voici le code:

Code : Tout sélectionner

For i = 0 To (NombreFeuilles - 1)
	If LesFeuilles(i).Name = FICTGELL Then
		reponse = MsgBox ("Voulez-vous écraser la Tgel? ", 4, "Cette Tgel est déjà rentrée")
    	If reponse = 6  Then
        	dim args1(0) as new com.sun.star.beans.PropertyValue
			args1(0).Name = "Nr"
			args1(0).Value = i+1
			dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
			dispatcher.executeDispatch(document, ".uno:Remove", "", 0, Array())
			dim args2(1) as new com.sun.star.beans.PropertyValue
			args2(0).Name = "Name"
			args2(0).Value = "Feuille2"
			args2(1).Name = "Index"
			args2(1).Value = 2
			dispatcher.executeDispatch(document, ".uno:Insert", "", 0, args2())
        	Exit Sub
    	Else
    	MsgBox ("Le fichier ne sera pas réimporté")
    	FicTgel = "0000000"
    	End If
	End If
Next i
donc mon seul soucis est que lorsque je lui impose de supprimer la feuille existante, il m'affiche automatiquement le message :" voulez vous vraiment supprimer la feuille...", ce qui risque d'affoler les utilisateurs. Je préfèrerais qu'il n'affiche pas ce message puisque de toute façon je lui demande au préalable s'il veut écraser ou non.

heu, j'espère que c'est un peu plus clair là, et que je ne vous ai pas embrouillé plus.

en une ligne : je cherche juste la ligne de code permettant de virer les messages d'alerte.

merci :)
OOo 2.0.3 sous Windows XP SP2
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Message par bm92 »

en une ligne : je cherche juste la ligne de code permettant de virer les messages d'alerte.
Je ne pense pas que ceci existe en OpenOffice.
Avec du "vrai" codage, tu peux faire les choses plus simplement (dans ton cas). Ceci remplace tout ton codage:

Code : Tout sélectionner

Dim leDoc as object, lesFeuilles as object

leDoc = ThisComponent
lesFeuilles = leDoc.Sheets
if lesFeuilles.hasByName(FICTGELL)  then
  reponse = MsgBox ("Voulez-vous écraser la Tgel? ", 4, "Cette Tgel est déjà rentrée") 
  If reponse = 6  Then
    lesFeuilles.removeByName(FICTGELL)
  Else 
    MsgBox ("Le fichier ne sera pas réimporté") 
    FicTgel = "0000000" 
  End If
end if
Pour te documenter voir l'article en post-it. Ou bien sûr le bouquin Programmation OpenOffice.org 2, pour les fanatiques.
Péna
Membre OOrganisé
Membre OOrganisé
Messages : 70
Inscription : 01 juin 2006 14:27
Localisation : Toulouse

Message par Péna »

hum merci, j'ai essayé ton code, et c'est parfait! :D j'ai juste rajouté la ligne suivante :

Code : Tout sélectionner

LesFeuilles.insertNewByName("Feuille2", 1) 
pour créer ma nouvelle feuille et c bon.

merci beaucoup bm92!!
OOo 2.0.3 sous Windows XP SP2