[Résolu][Calc] Deux copier-coller sur la même 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 !
Paul213
Fraîchement OOthentifié
Messages : 1
Inscription : 19 sept. 2018 21:22

[Résolu][Calc] Deux copier-coller sur la même ligne

Message par Paul213 »


La modération vous a écrit: [list][*]Merci de citer vos sources pour cette macro
[*]Le terme macros a été supprimé du titre car inutile dans la section consacrée aux macros[/list]

Bonjour,
Je découvre les macros, je ne connais rien à la programmation, je vais donc essayer d’être précis sans vraiment connaître le langage.
J'ai téléchargé le code suivant (sur ce site) mais je n'arrive pas à le modifier.
La première macro copie sur les trois premier tableaux, j'ai besoin d'une deuxième macro pour le dernier tableau car les valeurs à recopier dépendent des premiers tableaux déjà remplis. Je ne peux donc pas copier en même temps.
Dans le code, toutes les zones nommées sont prises en compte, donc, si je nomme la dernière zone ,elle sera prise en compte par la première commande.
Je pense, mais je peux me tromper, qu'il faudrait juste préciser les zones pour chaque macro, mais, totalement novice, je n'ai pas réussi.

Code : Tout sélectionner

Option Explicit
Sub Main
Dim oDoc as Object, maFeuille as Object, mesZones as Object
Dim maZone as Object, Adresse as Object, laZone as Object, Destination as Object
Dim CellVide as Variant, x as Integer, y as Long
	oDoc = thisComponent
	maFeuille = oDoc.CurrentController.ActiveSheet
	mesZones = oDoc.NamedRanges
	For x = 0 To mesZones.Count -1
		maZone = mesZones(x)
		Adresse = maZone.ReferredCells.RangeAddress
		laZone = maFeuille.getCellRangeByPosition(Adresse.startColumn,9,Adresse.startColumn,29)
		CellVide = laZone.queryEmptyCells.RangeAddresses
		If UBound(CellVide) < 0 Then
			MsgBox("aucune cellule vide dans la zone " & laZone.AbsoluteName)
			Exit Sub
		Else
			y = cellVide(0).StartRow
		End If	
		Destination = maFeuille.getCellRangeByPosition(Adresse.startColumn,y,Adresse.EndColumn,y)
		Destination.DataArray = maZone.ReferredCells.DataArray	
	Next x	
End Sub
Je vous remercie pour votre aide et vos explications.
Pièces jointes
Résultats.ods
(13.58 Kio) Téléchargé 42 fois
Dernière modification par micmac le 21 oct. 2018 09:06, modifié 1 fois.
LibreOffice 6.0.3.2 Kubuntu 18.04 AMD
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25145
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Deux copier-coller sur la même ligne

Message par Dude »

Image
Fournis deux copies écran avec ce qu'il y a au départ et à l'arrivée.
Ainsi qu'un minimum d'explication sur la logique de copie des nombres.
Verrouillé