La modération vous a écrit: Avant de poster une nouvelle question, il serait agréable que vous clôturiez le(s) fil(s) précédemment initié(s) : http://forum.openoffice.org/fr/forum/se ... =egosearch
Notamment en ajoutant la balise [Résolu] si c'est le cas, suivez ce sujet pour savoir comment procéder : http://forum.openoffice.org/fr/forum/ftopic3299.html
C'est une question de courtoisie pour les gens qui vous ont répondu et consacré bénévolement de leur temps. Notre forum est plus lisible avec ce balisage comme vous avez pu vous en rendre compte en le parcourant.
Merci de votre collaboration
Bonsoir,
Je modifie mon premier message et le titre car je pense avoir identifié un peu mieux mon problème.
Je me permets de solliciter votre aide.
Etant totalement incompétente en la matière, j'ai quand même essayé de faire une macro...
J'ai récupéré sur un autre fil de discussion une macro qui permet de copier une zone de cellules d'une feuille (calculs), insérer une ligne dans une autre feuille (champs) et copier les données de la première sur la nouvelle ligne insérée : cela fonctionne presque correctement. En effet, lorsque j'exécute cette macro, elle fait bien l'action pour laquelle elle est prévue mais je ne peux plus enregistrer mon document puisqu'un message d'erreur apparaît :"Erreur lors de l'enregistrement du document Données:
Erreur d'écriture.
Impossible d'écrire dans le fichier."
Voici la macro utilisée
Code : Tout sélectionner
option Explicit
Sub Main
Dim Calculs As Object, Champs As Object
Dim MaZone As Object, MaCopie As Object
Calculs = ThisComponent.sheets.getByName("Calculs")
Champs = ThisComponent.sheets.getByName("Champs")
MaZone = Calculs.GetCellRangeByPosition(0,0,600,1)'"A2:ZZ2"Champs
Champs.Rows.insertByIndex(0,1)' o pour la position, 1 pour le nombre de ligne
MaCopie = Champs.GetCellByPosition(0,0)'A1 en Champs
Calculs.copyRange(MaCopie.CellAddress,MaZone.RangeAddress)'la copie
'ThisComponent.CurrentController().ActiveSheet = Feuille1 'Retour en feuille1 facultatif
MaZone.clearContents(1)' changer le chiffre entre parenthèse suivant ce que l'on veut éffacer
End Sub
J'ai d'autres macros sur le fichier qui elles ne posent aucun problème quand je les exécute.
Savez-vous pourquoi cette macro m'empêche d'enregistrer?
Merci pour vos réponses, et bonne soirée
Merci de votre aide.
EDIT le 26 mars 2018 :
J'ai trouvé une solution qui fonctionne :
Code : Tout sélectionner
Dim Champs As Object, Calculs As Object
Dim MaZone As Object, MaCopie As Object
Dim MaZoneeff
Calculs = ThisComponent.Sheets.getByName("Calculs")
Champs = ThisComponent.sheets.getByName("Champs")
Champs.Rows.insertByIndex(1,1)'1)
MaZone = Calculs.getCellRangeByName("A2:AHZ2")'2)
MaZoneeff = Calculs.getCellRangeByName("A2:AHG2")
MaCopie = Champs.getCellRangeByName("A2:AHZ2")'3)
MaCopie.cellbackcolor = -1
MaCopie.DataArray = MaZone.DataArray'4)
ThisComponent.CurrentController().ActiveSheet = Calculs(0)'5)
MaZoneeff.clearContents(1+4)'6) (1 efface les valeurs numériques, 4 les valeurs texte) les formules ne sont pas effacées