[Résolu][Calc] Enregistrement impossible après exécution

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 !
Solaris
Membre hOOnoraire
Membre hOOnoraire
Messages : 146
Inscription : 02 août 2017 21:55

[Résolu][Calc] Enregistrement impossible après exécution

Message par Solaris »


La modération vous a écrit: :alerte: 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

Dernière modification par Oukcha le 16 mars 2018 09:40, modifié 1 fois.
Libre office 7.3.2.2
Windows 11