[Résolu][Calc] Ecriture de données dans un autre fichier

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 !
Thomaas54
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 24 oct. 2018 08:18

[Résolu][Calc] Ecriture de données dans un autre fichier

Message par Thomaas54 »

Bonjour à tous,

Après des heures de recherche, je trouve que des éléments que je n'arrive pas à comprendre et qui ne réponde pas à ce que je voudrai.

Voilà, je gère une liste de personne avec des données plus ou moins confidentielles.
J'aimerai donc savoir si il est possible de copier certaines informations sur un autre fichier calc pour que je puisse avoir mon fichier que je remplis avec les données confidentielles et un autre fichier avec toutes les informations utiles. Car je dois renseigner mes supérieurs des informations concernant la personne mais sans les données confidentielles.
Cela me ferais gagner beaucoup de temps car j'ai plus de 10 000 personne à gérer et je me vois pas recopier les 3/4 des données deux fois voir trois fois...

Un exemple dans les fichiers calc suivants. Le premier serait le fichier que je remplis à la main et le second le fichier que je dois renseigner à mes supérieurs. (Il est pas très réaliste mais c'est pour "faciliter" la compréhension)

J'espère être claire et qu'on pourra m'aider.
Merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 27 nov. 2018 10:51, modifié 2 fois.
Raison : [Résolu] s'écrit avec un "e" accentué.
LibreOffice 5.4 sous Windows 7
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Ecriture de données dans un autre fichier

Message par Dude »

Salut,

Il n'y a pas besoin de macro pour ça.
La fonction de filtre permet de masquer des lignes et/ou faire une copie du résultat sur une autre feuille :
Image
Thomaas54
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 24 oct. 2018 08:18

Re: [Calc] Ecriture de données dans un autre fichier

Message par Thomaas54 »

Le problème étant que j'ai pas mal de chose à filtrer, à les enregistrer dans d'autre fichier etc ...
Donc ça aurais été pas mal de pouvoir en appuyant sur un simple bouton de remplir les autres fichiers par rapport à ce que j'ai remplis dans le fichier principal
LibreOffice 5.4 sous Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Ecriture de données dans un autre fichier

Message par Piaf »

Bonjour
Thomaas54 a écrit :(Il est pas très réaliste mais c'est pour "faciliter" la compréhension)
Le problème n'est pas qu'il soit réaliste mais que la structure soit la même. :)
Tu peux tester

Code : Tout sélectionner

Sub Main
Dim oDoc as Object, maFeuille as Object, oCurseur as Object, maZone as Object
Dim aCopier as Object, monDocument as Object, oRange as Object, oCols as Object
Dim y as Long, adresseDoc as String, i as Integer, SuppCol as Variant
	oDoc = thisComponent
	SuppCol = Array(2,4)
	maFeuille = oDoc.CurrentController.ActiveSheet
	oCurseur = maFeuille.createCursor
	oCurseur.gotoEndOfUsedArea(False)
	y = oCurseur.RangeAddress.EndRow
	maZone = maFeuille.getCellRangeByPosition(0,0,5,y)
	adresseDoc = "private:factory/scalc"
	oDoc.CurrentController.Select(maZone)
	aCopier = oDoc.CurrentController.getTransferable()
	monDocument = StarDesktop.loadComponentFromURL(adresseDoc, "_blank", 0, Array() )
	oRange = monDocument.Sheets(0).getCellRangeByName("A1")
	monDocument.CurrentController.Select(oRange)
	monDocument.CurrentController.insertTransferable(aCopier)
	oCols = monDocument.Sheets(0).Columns
	For i = UBound(SuppCol) To  0 step -1
		oCols.removeByIndex(SuppCol(i),1)
	Next i	
End Sub
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Thomaas54
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 24 oct. 2018 08:18

Re: [Calc] Ecriture de données dans un autre fichier

Message par Thomaas54 »

Bonjour,

Merci vraiment pour cette macro Piaf elle marche à merveille et j'ai réussi à bien comprendre !
Dernière petite question, si je veux fermer le document ouvert à la fin j'ai juste à faire un :

Code : Tout sélectionner

monDocument.store                      'Pour enregistrer
monDocument.close(true)              'Pour fermer
Puis je comprend pas à quoi sert ta dernière boucle for :fou:
LibreOffice 5.4 sous Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Ecriture de données dans un autre fichier

Message par Piaf »

Bonjour
Thomaas54 a écrit :si je veux fermer le document ouvert à la fin j'ai juste à faire un :
Non, store ne peut être utilisé que sur un document déjà enregistré (qui à donc une adresse), si le document n'a jamais été enregistré, tu dois utiliser storeToURL en précisant l'adresse et le nom du fichier (tu as des exemples sur le Forum).
Thomaas54 a écrit :Puis je comprend pas à quoi sert ta dernière boucle for
Elle boucle sur le tableau SuppCol et supprime les colonnes désignées dans le tableau.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Thomaas54
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 24 oct. 2018 08:18

Re: [Calc] Ecriture de données dans un autre fichier

Message par Thomaas54 »

D'accord

Merci pour tout !
LibreOffice 5.4 sous Windows 7