[Résolu] [Calc] Bouton de création ligne par ligne

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 !
Répondre
sylpard
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 20 mars 2015 09:16

[Résolu] [Calc] Bouton de création ligne par ligne

Message par sylpard »

Bonjour,

Avec le fichier type en pièce jointe, j'aimerais qu'avec un bouton soit crée les lignes de couleurs dans l' ordre ( les violettes, puis les bleus etc etc ... )

Comment puis-je faire ?

Merci d' avance a tous
Pièces jointes
ligneparligne.ods
(12.85 Kio) Téléchargé 66 fois
Dernière modification par OOoch le 04 avr. 2015 08:36, modifié 4 fois.
Raison : En balisant [Résolu], n'oubliez pas la coche verte SVP
LibreOffice 4.0.6.2 Windows 7
sylpard
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 20 mars 2015 09:16

Re: [Calc] bouton de création ligne par ligne

Message par sylpard »

Le modérateur a écrit : :alerte: Merci de ne pas poster plusieurs messages à la suite !
Si vous devez ajouter un complément d'information, le bouton "Editer" à la droite du message permet d'y remédier.

En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.
Merci d' avoir deverrouillé mon message

en cherchant j'ai trouvé cette macro qui pourrait coller .

l' idée est de cliquer sur le bouton " ajouter une ligne" qui du coup ajoute les lignes

Code : Tout sélectionner

HOST	ADD

HOST	APPLYTPL

HC	ADDMEMBER

ACLRESOURCE	GRANT_HOSTGROUP

HOST	SETPARAM
puis si on reclique il ajoute une ligne à la suite de chaque ligne ce qui va donner :

Code : Tout sélectionner

HOST	ADD
HOST	ADD
HOST	APPLYTPL
HOST	APPLYTPL
HC	ADDMEMBER
HC	ADDMEMBER
ACLRESOURCE	GRANT_HOSTGROUP
ACLRESOURCE	GRANT_HOSTGROUP
HOST	SETPARAM
HOST	SETPARAM
Merci d' avance pour votre aide !
Pièces jointes
heure expo.ods
(17.6 Kio) Téléchargé 36 fois
LibreOffice 4.0.6.2 Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Calc] bouton de création ligne par ligne

Message par Piaf »

Bonjour
Une façon éventuelle de faire

Code : Tout sélectionner

Option Explicit
Sub SelectCouleur()
Dim oDoc As Object, maFeuille As Object,maZone as Object, Coloriage as Object, oForm As Object, maCellule as Object
Dim y as Long
Dim Couleur() As Object, Couleurs As Object
Dim F as Object, oDisp as Object
Dim Arg(0) as new com.sun.star.beans.PropertyValue
Dim nomCellule() as String, w As Object
	oDoc = thisComponent
	maFeuille = oDoc.Sheets.getByName("Feuille1")
	maZone = maFeuille.getCellRangeByName("A1:A1000")
	y = CelluleVide(maZone)
	Coloriage = maFeuille.getCellRangeByName("A" & y & ":B" & y)
	oForm = maFeuille.DrawPage.Forms.getByName("Formulaire")
	oForm.getGroupByName("Couleurs", Couleur())
	F = ThisComponent.CurrentController.Frame
	oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
	For Each Couleurs In Couleur()
		With Couleurs
			If .State = 1 Then
				Coloriage.CellStyle = .Label
				maCellule = Coloriage.getCellByPosition(0,0)
				nomCellule = Split(macellule.AbsoluteName,".")
				Arg(0).Name = "ToPoint"
				Arg(0).Value = nomCellule(1)
				oDisp.executeDispatch(F,".uno:GoToCell", "", 0, Arg())
				w = ThisComponent.CurrentController.Frame.ContainerWindow
				w.setFocus				
			End if	
		End With
	next
End Sub

Function CelluleVide(maZone as Object) as Long
Dim zonesVides As Variant, y as Long
	zonesVides = maZone.queryEmptyCells.RangeAddresses
	y = zonesVides(0).StartRow
	CelluleVide = y + 1
End Function
A+
Pièces jointes
ligneparligne(1).ods
(13.74 Kio) Téléchargé 58 fois
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
Grenouille
ManitOOu
ManitOOu
Messages : 3223
Inscription : 13 janv. 2006 17:21
Localisation : Chasseneuil-du-Poitou / Futuroscope

Re: [Calc] bouton de création ligne par ligne

Message par Grenouille »

Bonsoir,
sylpard a écrit :avec un bouton soit crée les lignes de couleurs dans l' ordre ( les violettes, puis les bleus etc etc ... )

comment puis je faire ?
Une solution possible avec une extension :
https://forum.openoffice.org/fr/forum/v ... 18&t=11623
OpenOffice 4.1.5 et LibreOffice 5.3.4 (par obligation) sous Windows 7
sylpard
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 20 mars 2015 09:16

Re: [Calc] bouton de création ligne par ligne

Message par sylpard »

ah je me suis mal fait comprendre, pas facile de s'expliquer !! lol

les couleurs s’était pour se faire mieux comprendre ... raté !! lol

je retente ...

les lignes bleus sont présentes initialement .
Puis lorsque l' on clique sur le bouton, il se fasse une copie des ligne bleues, a la suite et et en bloc.

suis je plus clair ? ....Désolé :marto:
LibreOffice 4.0.6.2 Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Calc] bouton de création ligne par ligne

Message par Piaf »

Bonjour
sylpard a écrit :suis je plus clair ?
pas tant que ça :D
Peux-tu mettre une copie d'écran ou un fichier montrant la disposition au départ et le résultat que tu veux obtenir après exécution de la macro.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
sylpard
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 20 mars 2015 09:16

Re: [Calc] bouton de création ligne par ligne

Message par sylpard »

bon je vais essayer ...

par defaut on a les lignes 1;4;7;10
quand on clique sur un bouton, çà insère en une seule fois une ligne sous chacune cités précédemment avec l' équivalent de leur contenu

c'est mieux ? :(
Pièces jointes
ligneparligne.ods
(11.34 Kio) Téléchargé 46 fois
LibreOffice 4.0.6.2 Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Calc] bouton de création ligne par ligne

Message par Piaf »

Bonsoir
sylpard a écrit :c'est mieux ?
pas sur avec le fichier exemple.
Les lignes renseignées au départ ne peuvent pas être 1;4;7;10 quand dans le fichier il y a
ligne qui a été ajouté en cliquant sur un bouton
Mais ne t'inquiètes pas, j'ai toujours du mal à comprendre :lol:
Un exemple à tester avec ce que j'ai compris.

Code : Tout sélectionner

Option Explicit
Sub AjoutLignes()
Dim oDoc as Object, maFeuille as Object, maZone as Object, maCellule as Object
Dim ZonesVides as Variant, i as Integer, y as Integer
Dim cArrive as Object, ZDepart as Object
	oDoc = thisComponent
	maFeuille = oDoc.Sheets.getByName("Feuille1")
	maZone = maFeuille.getCellRangeByName("A1:A1000")
	zonesVides = maZone.queryEmptyCells.RangeAddresses
	For i = UBound(ZonesVides) To 0 Step -1
		maCellule = maFeuille.getCellByPosition(0,ZonesVides(i).StartRow)
		maCellule.Rows.insertByIndex(0,1)
		y = ZonesVides(i).StartRow - 1
		cArrive = maFeuille.getCellByPosition(0,ZonesVides(i).StartRow)
		ZDepart = maFeuille.getCellRangeByPosition(0,y,1,y)
		maFeuille.copyRange(cArrive.CellAddress, zDepart.RangeAddress)
		If ZDepart.CellStyle = "Violet" Then
			maFeuille.getCellRangeByPosition(0,ZonesVides(i).StartRow,1,ZonesVides(i).StartRow).CellStyle = "Bleu"
		Else
			maFeuille.getCellRangeByPosition(0,ZonesVides(i).StartRow,1,ZonesVides(i).StartRow).CellStyle = "Gris"
		End If	
	Next i
End Sub
La feuille au départ
Depart.png
Depart.png (10.52 Kio) Consulté 1544 fois
la feuille après deux clics sur le bouton
2Boutons.png
En espérant avoir correctement compris :)
A+
Pièces jointes
ligneparligne(2).ods
(11.32 Kio) Téléchargé 65 fois
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 839
Inscription : 10 janv. 2009 09:05

Re: [Calc] bouton de création ligne par ligne

Message par joel275 »

Bonjour,

ayant compris la même chose que Piaf, je joins un essai à peu près semblable avec plus de couleurs... :D

A plus,
Joël
Pièces jointes
ligneparligne-j1.ods
(12.6 Kio) Téléchargé 41 fois
A jour de LibreOffice et de Ubuntu
sylpard
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 20 mars 2015 09:16

Re: [Calc] bouton de création ligne par ligne

Message par sylpard »

Merci a tous c'est cela qui me faut .
par contre aprés la cellule B j'ai d' autres cellules qui font des liens avec d'autres cellules .
si j' insére la macro dans ma feuille, le bouton créera ce que vous avez indiqué mais pas les autres éléments ci-dessus ?
comment puis je et dans quelle ligne ( je ne pige pas trop ) indiquer qu' il doit copier de la cellule A a la cellule Z ?

ca doit se passer la non ? maZone = maFeuille.getCellRangeByName("A1:A1000")

Merci !
LibreOffice 4.0.6.2 Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Calc] bouton de création ligne par ligne

Message par Piaf »

Bonjour
Teste :

Code : Tout sélectionner

ZDepart = maFeuille.getCellRangeByPosition(0,y,25,y)
A+
Pièces jointes
ligneparligne(3).ods
(11.78 Kio) Téléchargé 38 fois
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
sylpard
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 20 mars 2015 09:16

Re: [Calc] bouton de création ligne par ligne

Message par sylpard »

BOnjour,

apres mes tests j'ai un petit soucis,

est il possible d' avoir le même rendu mais sans les lignes grises ? ( voir la piéce jointe )

Merci d' avance 8)
Pièces jointes
ligneparligne_forum.ods
(15.35 Kio) Téléchargé 93 fois
LibreOffice 4.0.6.2 Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Calc] bouton de création ligne par ligne

Message par Piaf »

Bonsoir
sylpard a écrit :apres mes tests j'ai un petit soucis,
est il possible d' avoir le même rendu mais sans les lignes grises ?
De l'intérêt de fournir dès le départ un fichier conforme à l'original.
A tester

Code : Tout sélectionner

Option Explicit
Sub AjoutLignes()
Dim oDoc as Object, maFeuille as Object, maZone as Object, maCellule as Object
Dim ZonesVides as Variant, i as Long, Pas as Integer
Dim cArrive as Object, ZDepart as Object
	oDoc = thisComponent
	maFeuille = oDoc.Sheets.getByName("Feuille1")
	Pas = maFeuille.getCellRangeByName("AMJ1").Value
	maZone = maFeuille.getCellRangeByName("A1:A1000")
	zonesVides = maZone.queryEmptyCells.RangeAddresses
	For i = ZonesVides(0).StartRow To 1 Step - Pas
		maCellule = maFeuille.getCellByPosition(0,i)
		maCellule.Rows.insertByIndex(0,1)
		cArrive = maFeuille.getCellByPosition(0,i)
		ZDepart = maFeuille.getCellRangeByPosition(0,i-1,25,i-1)
		maFeuille.copyRange(cArrive.CellAddress, zDepart.RangeAddress)
	Next i
	Pas = Pas + 1
	maFeuille.getCellRangeByName("AMJ1").Value = Pas
End Sub
Pièces jointes
ligneparligne(4).ods
(21.9 Kio) Téléchargé 48 fois
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
sylpard
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 20 mars 2015 09:16

Re: [Calc] bouton de création ligne par ligne

Message par sylpard »

Super !! c'est le comportement que j' attendais ! Merci !!!!

j' ai modifié la ligne ci-dessous pour demarrer la recopie à partir de la ligne 2 mais ca ne fonctionne pas une idée ?

maZone = maFeuille.getCellRangeByName("A2:A1000")
LibreOffice 4.0.6.2 Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Calc] bouton de création ligne par ligne

Message par Piaf »

Bonjour
sylpard a écrit :j' ai modifié la ligne ci-dessous pour demarrer la recopie à partir de la ligne 2 mais ca ne fonctionne pas une idée ?
maZone = maFeuille.getCellRangeByName("A2:A1000")
Je présume donc que tu as ajouté une ligne au-dessus des données.
Si c'est le cas, vérifie que la cellule AMJ1 soit renseignée et modifie la ligne

Code : Tout sélectionner

For i = ZonesVides(0).StartRow To 1 Step - Pas
avec

Code : Tout sélectionner

For i = ZonesVides(0).StartRow To 2 Step - Pas
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
sylpard
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 20 mars 2015 09:16

Re: [Calc] bouton de création ligne par ligne

Message par sylpard »

Merci ça fonctionne !

:super:
LibreOffice 4.0.6.2 Windows 7
Répondre