[Résolu]Copier/coller une ligne contenant une case à cocher

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 !
rapha_d
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 15 oct. 2016 13:26

[Résolu]Copier/coller une ligne contenant une case à cocher

Message par rapha_d »

Bonjour,

dans une feuille je fais la copie d'une ligne via une boite de dialogue. Cette ligne comporte une case à cocher qui est ancrée à la cellule (A1)
le coller reprends bien ma ligne sans la case à cocher, j'ai essayé beaucoup de solutions. voici mon dernier code, qui ne fonctionne pas plus.

Code : Tout sélectionner

sub derniereligne
	Dim zoneVide As Variant
	Dim maZone As Object
	Dim celluleVide As Integer
	dim dernierNumero as integer
	'Dim heure as string
	
	Document  = ThisComponent
   	maFeuille1 = Document.getSheets.getByName("Courant")
 
	maZone = maFeuille1.getCellRangeByName("B1:B1500")
	zoneVide = maZone.queryEmptyCells.RangeAddresses

'Je trouve la dernière ligne utilisée
	if (zoneVide(0).StartRow) < 2 then
		 celluleVide = 1
		 dernierNumero = 1
	else
		celluleVide = zoneVide(0).StartRow
' Je recupère le dernier numéro d enregistrement
		dernierNumero = maFeuille1.getCellRangeByName("B" & celluleVide).string	
'J'ajoute 1 pour le futur numéro d'enregistrement
		dernierNumero = dernierNumero + 1	 					
	end if 
	 
'J'ajoute 1 pour obtenir la ligne vide
	if celluleVide > 0 then
	 	celluleVide = celluleVide + 1
	 	vLigne = celluleVide
	Else
	 	vLigne = celluleVide
	End if 
	 
	 maFeuille1.getCellRangeByName("A" & celluleVide).rows.Height = 1000
	 

'Je copie la premiere ligne, soit la ligne 1
 	maCellule1 = maFeuille1.getCellRangeByName("A2:I2")
	maCellule2 = maFeuille1.getCellRangeByName("A" & celluleVide)    	
	maFeuille1.copyRange(maCellule2.CellAddress,maCellule1.RangeAddress)'la copie

' J'insere le nouveau numéro		
	maFeuille1.getCellRangeByName("B" & celluleVide).setValue(dernierNumero)
			
end sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par rapha_d le 16 nov. 2016 14:41, modifié 2 fois.
Windows 10 Libre office 4.6
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26201
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc]Copier/coller une ligne contenant une case à coche

Message par Dude »

Salut,
rapha_d a écrit :le coller reprends bien ma ligne sans la case à cocher
C'est normal puisque les contrôles de formulaire d'une feuille sont localisés sur sa couche de dessin (propriété DrawPage).
Accède à celle-ci et tu pourras déplacer ta case à cocher.
rapha_d
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 15 oct. 2016 13:26

Re: [Calc]Copier/coller une ligne contenant une case à coche

Message par rapha_d »

Bonjour,

Le problème est que je ne veux pas la déplacer mais en créer une à chaque nouvelle ligne et qui plus est avec sa propriété ancrage cellule pour pouvoir effectuer un traitement ultérieurement. Je suis preneur de toutes les pistes.
merci d avoir repondu
Windows 10 Libre office 4.6
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26201
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc]Copier/coller une ligne contenant une case à coche

Message par Dude »

rapha_d a écrit :mais en créer une à chaque nouvelle ligne et qui plus est avec sa propriété ancrage cellule pour pouvoir effectuer un traitement ultérieurement.
https://forum.openoffice.org/fr/forum/v ... formulaire
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc]Copier/coller une ligne contenant une case à coche

Message par Piaf »

Bonsoir
Le résultat de ta macro sous LibO 5.1.5.2 ou AOO 4.1.3
Macro.png
La case à cocher est bien recopiée.
Je présume donc que la recopie sans la case à cocher provient de la version que tu utilises.
Peux-tu tester avec ta version

Code : Tout sélectionner

sub derniereligne
Dim zoneVide As Variant
Dim maZone As Object
Dim celluleVide As Integer
Dim dernierNumero as integer
	Document  = ThisComponent
	maFeuille1 = Document.getSheets.getByName("Courant")

	maZone = maFeuille1.getCellRangeByName("B1:B1500")
	zoneVide = maZone.queryEmptyCells.RangeAddresses

	'Je trouve la dernière ligne utilisée
	If (zoneVide(0).StartRow) < 2 Then
		celluleVide = 1
		dernierNumero = 1
	Else
		celluleVide = zoneVide(0).StartRow
	' Je recupère le dernier numéro d enregistrement
		dernierNumero = maFeuille1.getCellRangeByName("B" & celluleVide).string   
	'J'ajoute 1 pour le futur numéro d'enregistrement
	dernierNumero = dernierNumero + 1                   
	End If

	'J'ajoute 1 pour obtenir la ligne vide
	If celluleVide > 0 Then
		celluleVide = celluleVide + 1
		vLigne = celluleVide
	Else
		vLigne = celluleVide
	End If

	maFeuille1.getCellRangeByName("A" & celluleVide).rows.Height = 1000       

	'Je copie la premiere ligne, soit la ligne 1
	maZone = maFeuille1.getCellRangeByName("A2:I2")
	Document.CurrentController.select(maZone)
	aCopier = Document.CurrentController.getTransferable()
	maCellule2 = maFeuille1.getCellRangeByName("A" & celluleVide)
	Document.CurrentController.select(maCellule2)
	Document.CurrentController.insertTransferable(aCopier)     
	'maFeuille1.copyRange(maCellule2.CellAddress,maCellule1.RangeAddress)'la copie
    ' J'insere le nouveau numéro      
	maFeuille1.getCellRangeByName("B" & celluleVide).setValue(dernierNumero)
End Sub
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
rapha_d
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 15 oct. 2016 13:26

[Résolu][Calc]Copier/coller ligne contenant une case à coch

Message par rapha_d »

Bonjour, un grand merci cela fonctionne parfaitement. Essayé sur 3 versions différentes impeccable.
Un grand merci PIAF.Bonne journée, super forum.
Windows 10 Libre office 4.6
toucan
MOOdérateur
MOOdérateur
Messages : 182
Inscription : 22 févr. 2016 23:49

Re: [Calc]Copier/coller une ligne contenant une case à coche

Message par toucan »

Bonjour,

Vous avez ajouté la balise [Résolu] dans votre fil de discussion signifiant que votre question a été résolue et nous vous en remercions.
Cependant pour des questions de lisibilité et d'homogénéité, il est demandé de faire cet ajout dans le titre de votre premier message. Il faut également cocher la case de l'icône de sujet (le V vert). Notre forum est plus lisible avec ce balisage comme vous avez pu vous en rendre compte en le parcourant.

Suivez ce sujet pour savoir comment procéder : http://user.services.openoffice.org/fr/ ... c3299.html

Merci de votre participation sur notre forum et de nous faciliter le travail de modération.

Cordialement, l'équipe de modération