Bonjour,
Je pensais enfin avoir fini de déboguer mon programme, quand j'ai constaté que l'une des procédures faisait planter Libreoffice (absence de réponse de toutes les fenêtres LibreOffice)
J'ai d'abord pensé à une boucle sans fin, mais en exécutant la procédure pas à pas, je me suis rendu compte que le programme plantait lors de la suppression d'une ligne, à l'avant dernière ligne de la procédure. Les lignes pour protéger / déprotéger la feuille sont en commentaires pour faciliter le débogage. J'ai mis ici en évidence la ligne en question, entre les deux lignes de tirets en commentaires.
Quelqu'un aurait-il une idée de la raison de, ou de la solution à ce plantage ? Voici les éléments de version :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Sub SupprOp ' supprime l'opération sélectionnée 'il faut d'abord rechercher si la cellule sélectionnée est dans la colonne clef. set odoc=thiscomponent set ofl=odoc.sheets.getbyname("Opérations") Dim CelluleActive As Object dim Choix as variant dim nblignes as integer dim nbcols as integer CelluleActive = ThisComponent.getCurrentSelection nbcols=celluleactive.celladdress.column nblignes=celluleactive.celladdress.row celluleactive = ofl.getcellbyposition(0,0) odoc.currentcontroller.select(celluleactive) ' j'ai essayé de déplacer le curseur voir si c'était ce qui créait le plantage. ' si jamais la colonne de la cellule active n'est pas la colonne 5, alors on considère que l'appui sur le bouton suppression est une erreur et on sort de la procédure, idem si la colonne 5 est vide if nbcols <> 5 or ofl.getcellbyposition(nbcols,nblignes).getformula ="" then exit sub endif Operation="Suppr" call traitop(nblignes) ' décrypte les informations de la ligne pour aller supprimer les lignes en rapports dans d'autres feuilles. 'ofl.unprotect("") '------------------------------------------ ofl.rows.removebyindex(nblignes,1) ' suppression de la ligne dans la feuille opération. '------------------------------------------ 'ofl.protect("") End Sub
Je précise que mon ordi n'est plus tout jeune.Version: 5.1.4.2
Build ID: 1:5.1.4-0ubuntu1
Threads CPU : 2; Version de l'OS :Linux 4.4; UI Render : par défaut;
Locale*: fr-FR (fr_FR.UTF-8)
Partager