[Résolu][Calc] Supprimer feuilles sur indice de début et fin

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 !
chevalpat
Membre lOOyal
Membre lOOyal
Messages : 41
Inscription : 26 mai 2008 20:11

[Résolu][Calc] Supprimer feuilles sur indice de début et fin

Message par chevalpat »

Bonjour

Je sais supprimer des feuilles à partir de leurs noms:

Code : Tout sélectionner

for i = nbf-1 to 14 step -1
		nom = lesfeuilles(i).name
		lesfeuilles.removebyname(nom)
	next i
mais c'est plutôt long dans l'exécution
existe t-il une commande pour supprimer x feuilles d'un coup en indiquant l'indice de début et de fin?
(ou bien une commande pour sélectionner x feuilles d'un coup ...)

Merci à vous

Patrice Chevalier
Dernière modification par chevalpat le 23 juil. 2010 11:02, modifié 3 fois.
Windows 10 - open office 4.1.5 ;-)
Avatar de l’utilisateur
Don Corleone
MOOdérateur
MOOdérateur
Messages : 629
Inscription : 20 avr. 2010 14:48

Re: [Calc]suppression de feuilles avec indice de début et de

Message par Don Corleone »

Bonjour,

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 les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : http://user.services.openoffice.org/fr/ ... html#27295

N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer 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 sous peine de voir votre sujet verrouillé.

Merci de votre collaboration.
Votre question a trouvé sa solution ?
Balisez votre fil [Résolu] ou [Issue] dans le titre de votre 1er message.

Tout sur le fonctionnement du forum
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Re: [Calc]suppression de feuilles avec indice de début et de

Message par bm92 »

Bonsoir,
chevalpat a écrit :Je sais supprimer des feuilles à partir de leurs noms:
mais c'est plutôt long dans l'exécution
existe t-il une commande pour supprimer x feuilles d'un coup en indiquant l'indice de début et de fin?
(ou bien une commande pour sélectionner x feuilles d'un coup ...)
Plutôt long, c'est quelle durée ? Et tu le fais souvent ? :wink:
Non, c'est la seule méthode possible.
Il est possible que le tableur s'efforce de remettre à jour les cellules à chaque suppression de page. Tu devrais bloquer toute action pendant la boucle : lockControllers, addActionLock. Et débloquer après. Recherche ces mots dans le forum pour voir des exemples.
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Calc]suppression de feuilles avec indice de début et de

Message par Churay »

Bonsoir

Autre piste pour bloquer le recalcul automatique : monDocument.enableAutomaticCalculation(false) (réactivation avec true)

J'avais vu un post qui en parle, mais je ne retrouve pas... :roll:

Par contre, c'est à la page 460 de Programmation OpenOffice.ogr 3.0 Macros OOoBasic et API de Bernard Marcelly et Laurent Godard...


cOOordialement
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25173
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc]suppression de feuilles avec indice de début et de

Message par Dude »

Churay a écrit :J'avais vu un post qui en parle, mais je ne retrouve pas...
Suprême de code http://user.services.openoffice.org/fr/ ... =15&t=1666 (dont on a fait un sommaire ;) )
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Calc]suppression de feuilles avec indice de début et de

Message par jeanmimi »

Bonjour,
Pour faire ce que tu décris, j'utilise MultiPages :
http://fr.openoffice.org/Documentation/ ... index.html
Un clic sur l'icône, puis sur Supprimer. La boite de dialogue affiche tous les noms des pages, je sélectionne celles que je ne désire pas puis un clic pour valider.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: [Calc]suppression de feuilles avec indice de début et de

Message par Pierre-Yves Samyn »

Bonjour

+1 pour ce qui a déjà été dit.

Sur ce point :
chevalpat a écrit :existe t-il une commande pour sélectionner x feuilles d'un coup ...
Tu peux utiliser la mémorisation de macro et la commande de menu Edition > Feuilles > Sélectionner (ci-dessous sélection des feuilles 1 et 3) :

Code : Tout sélectionner

sub PysSelectionnerFeuilles
dim document as object
dim dispatcher as object
dim args1(0) as new com.sun.star.beans.PropertyValue

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(0).Name = "Tables"
args1(0).Value = Array(0,2)

dispatcher.executeDispatch(document, ".uno:SelectTables", "", 0, args1())

end sub
Su ce point :
chevalpat a écrit :existe t-il une commande pour supprimer x feuilles d'un coup en indiquant l'indice de début et de fin?
Donc non mais le tableau des noms de feuilles est ordonné en fonction de l'ordre des feuilles dans le classeur. Partant de cet indice tu peux trouver le nom...
Exemple de boucle créant un tableau avec tous les noms de feuille :

Code : Tout sélectionner

dim PysFeuilles as object
dim i as integer
dim PysNomFeuilles() as string

PysFeuilles = ThisComponent.sheets
i = PysFeuilles.count - 1

redim PysNomFeuilles(i)

for i = lbound(PysFeuilles.ElementNames) to ubound(PysFeuilles.ElementNames)
	PysNomFeuilles(i) = PysFeuilles.ElementNames(i)
next i
chevalpat
Membre lOOyal
Membre lOOyal
Messages : 41
Inscription : 26 mai 2008 20:11

Re: [Calc]suppression de feuilles avec indice de début et de

Message par chevalpat »

Merci pour toutes ces réponses, je vais explorer les différentes suggestions

Patrice Chevalier
Windows 10 - open office 4.1.5 ;-)