[Résolu][Calc] Copier/Coller pour les nuls ?

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 !
Tarnx
Fraîchement OOthentifié
Messages : 8
Inscription : 13 mai 2009 15:17

[Résolu][Calc] Copier/Coller pour les nuls ?

Message par Tarnx »

Bonjour à tous.

Dans la cadre du développement d'une macro sous Open Office, je dois faire un copier/coller d'une feuille à l'autre sur le même document.
Malgré mes recherches sur ce forum et sur les tutoriels disponibles, je n'ai pas réussi à appliquer les codes fournis à mon cas.

Je me suis donc lancé désespérément dans une n-ième tentative et j'ai finalement réussi de manière très simple à copier des cellules d'une feuille à l'autre.

Voici donc le code.

Code : Tout sélectionner

Sub Copier

DIM oCellule as Object 
DIM MonDoc as Object
DIM MaFeuille as Object
DIM Test as string
  
MonDoc = ThisComponent				
MaFeuille =MonDoc.sheets(4)						


  'Compteur de Ligne			
iSrc = 0
		
    'On compte le nombre de lignes à copier dans la page Source (Ici feuille 5)	
oCellule = Mafeuille.Getcellrangebyname("C" & iSrc)		
Test = oCellule.string						
Do While Test <> ""										
	iSrc = iSrc +1											
	oCellule = Mafeuille.Getcellrangebyname("C" & iSrc)		
	Test= oCellule.string				
Loop		
				
    'On souhaite commencer la copie ligne 13/Colonne G de la feuille de destination	(Ici feuille 2)					
LigneDest = 12
		
For LigneSrc = 2 to iSrc								
	ColonneDest = 6									
	For ColonneSrc = 2 to 9	
							
			'Copie des Cellules						
		oCellule = MonDoc.sheets(4).GetCellByPosition(ColonneSrc,LigneSrc)	
		CellSrc = oCellule.string							
		oCellule = MonDoc.sheets(1).GetCellByPosition(ColonneDest,ligneDestPre)
		oCellule.string	= CellSrc											
									
		ColonneDest= ColonneDest +1	
															
	Next ColonneSrc																	
		LigneDest= LigneDest +1																					
Next LigneSrc									
									
End Sub
Devant la complexité, pour un débutant, des autres codes que l'on peut trouver sur le forum (par exemple celui ci : Exemple suprême de code ) et devant l'étonnement de ne pas trouver de code aussi simple,

je me suis demandé, et je demande votre aide sur ce sujet,

Y a-t-il des inconvénients à utiliser un code tel que celui la? Cela engendre-t-il quelque chose de particulier ? Ma question est difficilement exprimable :?

Merci de votre aide :wink:


Edit : Oublié de dire Merci, le malpoli :oops:
Dernière modification par Tarnx le 19 mai 2009 11:19, modifié 2 fois.
Windows xp Pro / Open Office 3.0
jjk
HédOOniste
HédOOniste
Messages : 1696
Inscription : 27 oct. 2008 15:30

Re: [Calc] Copier/Coller pour les nuls ?

Message par jjk »

Bonjour

Sinon, il existe la méthode copyRange qui s'applique à la feuille-cible.
La syntaxe générale est la suivante :

Code : Tout sélectionner

oSheetTarget.copyRange(oCellTarget.CellAddress, oRangeSource.RangeAddress)

- oSheetTarget est l'objet feuille-cible
- oSheetSource est l'objet feuille-source
- oCellTarget est l'objet cellule-cible de la feuille-cible, par exemple oSheetTarget.getCellRangeByName("G13")
- oRangeSource est l'objet plage de la feuille-source, par exemple oSheetSource.getCellRangeByName("A1:C4")
OpenOffice 3.1.1 sous XP-SP2 et LibreOffice 3.5.0 sous Win 7
Répondre