[Résolu][Calc] Comportement surprenant lors de l'extension d'un tableau

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 !
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

[Résolu][Calc] Comportement surprenant lors de l'extension d'un tableau

Message par jémy urles »

Bonjour :D
But de la macro:
- Copier la dernière ligne d'un tableau.
- Pointer la cellule A de la ligne suivante (ligne vide).
- Insérer avant cette ligne la ligne sauvegardée.
- Sélectionner une cellule de cette ligne pour saisir une valeur.
Fichier en pièce jointe, le code:

Code : Tout sélectionner

Rem Extension d'un tableau: répétition de la dernière ligne, curseur positionné pour une saisie
Sub extendArray (oFeuille As Object, nomColTst As String, indLig As Integer, nomColIn As String)
	Dim document   	As Object
	Dim dispatcher 	As Object
	Dim indColTst	As Integer

	Rem Accès au document
	document  	= ThisComponent.CurrentController.Frame
	dispatcher 	= createUnoService("com.sun.star.frame.DispatchHelper")

	Rem Recherche de la dernière cellule non vide dans la colonne indexColTst
	indColTst = indexColonne(nomColTst)
	indLig = indLig - 1				' Les index commencent à 0
	Do Until oFeuille.getCellByPosition(indColTst, indLig).String = ""
		indLig = indLig + 1
	Loop

	Rem Pointe la cellule A de cette ligne 
	Dim args1(0) 	As New com.sun.star.beans.PropertyValue
	args1(0).Name 	= "ToPoint"
	args1(0).Value 	= "$A$" + indLig
	dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

	Rem sélection et sauvegarde de cette ligne
	dispatcher.executeDispatch(document, ".uno:SelectRow", "", 0, Array())
	dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

	Rem Pointe sur la ligne suivante
	indLig = indLig + 1
	Dim args2(1) 	As New com.sun.star.beans.PropertyValue
	args2(0).Name	= "By"
	args2(0).Value 	= 1
	args2(1).Name 	= "Sel"
	args2(1).Value 	= false
	dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args2())

	Rem Insertion d'une ligne (avant cette ligne)
	dispatcher.executeDispatch(document, ".uno:InsertRowsBefore", "", 0, Array())

	Rem Collage de la ligne sauvegardée 
	dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())

	Rem Sélection de la cellule de saisie
	Dim args3(0)		As New com.sun.star.beans.PropertyValue
	args3(0).Name 	= "ToPoint"
	args3(0).Value 	= "$" + nomColIn + "$" + indLig
	dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
End Sub
Tout se passe bien, ligne correctement insérée et, cellule (colonne B) sélectionnée, mais si j'appuie sur la touche Entrée le message d'information "Impossible d'insérer au-delà de la page." s'affiche, gloups.
Je voudrais que le curseur soit dans l'état d'une saisie (comme lorqu'on double clique sur une cellule), que la touche Entrée valide la donnée même si elle n'a pas été saisie.
Merci pour vos :idea:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Oukcha le 27 févr. 2026 14:53, modifié 4 fois.
Raison : Ajout coche verte (balise présente)
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 10096
Inscription : 28 août 2010 08:45

Re: [Calc] Bug sur extension d'un tableau

Message par micmac »

Bonjour,

Le titre de votre question n'est pas assez explicite ou ne reflète pas le problème que vous décrivez :
<[Calc] Bug sur extension d'un tableau>
Lors d'une recherche, ce sujet risque de passer inaperçu et donc de ne pas aider d'autres personnes ayant le même problème que vous.
Le terme bug, n’explique pas ce problème.

Voici quelques astuces pour avoir un titre optimum : viewtopic.php?p=1002#p1002

Merci de corriger.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26200
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Extension d'un tableau pour nouvelle saisie

Message par Dude »

Salut,

Qu'est ce que tu cherches à faire au final ? Pour moi, c'est un problème XY.

Si tu cherches à incorporer une nouvelle série de données pour ton graphique, il est plus simple de le supprimer puis de le reconstruire en indiquant la nouvelle plage.
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

Re: [Calc] Extension d'un tableau pour nouvelle saisie

Message par jémy urles »

Bonjour,

Je ne sais si possible et comment changer le titre de ce fil.

Pour caractériser un peu plus le bug je lance la macro avec la colonne A comme colonne de saisie:

Code : Tout sélectionner

Sub MacroPoids
	extendArray(ThisComponent.CurrentController.ActiveSheet, "A", 4, "A") 
End Sub
Si je valide sans saisir de valeur la ligne se retrouve sélectionnée (en bleu) et chaque appui sur Entrée fait passer la cellule de la colonne suivante (A, B, C, etc.) :shock:
Code en pj
J'ai du oublier quelque chose :oops:
Merci pour vos :idea:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 10096
Inscription : 28 août 2010 08:45

Re: [Calc] Extension d'un tableau pour nouvelle saisie

Message par micmac »

jémy urles a écrit : 22 févr. 2026 14:57 ... comment changer le titre de ce fil.
C’est faisable.
Pour cela éditez le titre du premier message de ce fil en faisant en sort qu’il soit explicite de ce que vous cherchez à faire et en évitant les termes implicitres bug, macro ou LibreOffice .
.
 Ajout :  :alerte: :alerte:
Si le titre du premier message n'est pas plus explicite et continue d'utiliser le mot bug qui ne veut rien dire, le sujet sera verrouillé 
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26200
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Bug sur extension d'un tableau

Message par Dude »

Salut,
jémy urles a écrit : 22 févr. 2026 14:57 Pour caractériser un peu plus le bug
Comme l'indique le modo, ce n'est pas une bogue. C'est juste ton codage qui est incorrect.
Si tu veux insérer des lignes, pourquoi ne passes-tu pas par un formulaire de saisie ?

Commence déjà par fournir un document exploitable.
Ton document Relevé poids ess.ods ne peut pas s'exécuter :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par jémy urles »

Sorry, code s'exécutant en pj
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26200
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par Dude »

J'ai mis le bouton en haut de la feuille et branché le bon événement dessus avec "Exécuter l'action".
Je ne vois pas de problème avec ni d'erreur. Explique toi mieux :
demo.gif
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par jémy urles »

Merci Dude :D
Le bouton "Ajout mesure" insère correctement une ligne en fin de tableau. Le problème se pose lorsqu'on valide sans saisir de valeur, validation par la touche Entrée, auquel cas la dernière ligne ajoutée au tableau apparait en bleu, cellule de la colonne A sélectionnée.(normal car paramètre d'entrée), puis tout appui sur Entrée fait passer à la COLONNE SUIVANTE :shock:
Avec ou sans saisie d'une valeur la validation par Entrée devrait faire passer le focus à la ligne suivante (dans la même colonne). Voilà :D
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26200
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par Dude »

jémy urles a écrit : 23 févr. 2026 12:03puis tout appui sur Entrée fait passer à la COLONNE SUIVANTE
Avec ou sans saisie d'une valeur la validation par Entrée devrait faire passer le focus à la ligne suivante (dans la même colonne).
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par jémy urles »

Non, l'option est correctement cochée, le problème vient d'ailleurs :fou:
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26200
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par Dude »

Je ne reproduis pas sous OpenOffice 4.1.16.
La touche Entrée sur la colonne A fait passer à la cellule du dessous.


.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par jémy urles »

OpenOffice 4.1.16 installé, même constat que toi, la touche Entrée sur la colonne A fait passer à la cellule du dessous, mais il n'y a pas insertion mais ajout en fin de tableau, contrairement à LibreOffice qui insère la ligne :shock: :fou:
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26200
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par Dude »

jémy urles a écrit : 23 févr. 2026 14:58 mais il n'y a pas insertion mais ajout en fin de tableau, contrairement à LibreOffice qui insère la ligne
La commande uno:InsertRowsBefore va forcément te demander une confirmation d'écrasement des données existantes.
Et c'est d'ailleurs sans doute ça qui bloque.
Je ne vois pas l'intérêt d'insérer avant la dernière ligne.
Explique toi en fournissant des copies d'écran de ce que tu cherches à faire.
cwolan
Membre hOOnoraire
Membre hOOnoraire
Messages : 174
Inscription : 14 févr. 2021 22:15

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par cwolan »

Bonjour,
jémy urles a écrit : 23 févr. 2026 12:03 Le bouton "Ajout mesure" insère correctement une ligne en fin de tableau. Le problème se pose lorsqu'on valide sans saisir de valeur, validation par la touche Entrée, auquel cas la dernière ligne ajoutée au tableau apparait en bleu, cellule de la colonne A sélectionnée.(normal car paramètre d'entrée), puis tout appui sur Entrée fait passer à la COLONNE SUIVANTE :shock:
Avec ou sans saisie d'une valeur la validation par Entrée devrait faire passer le focus à la ligne suivante (dans la même colonne). Voilà :D
Selon l'Aide de LibreOffice :
Entrée.png

En plus, comparez le comportement de Calc en fonction du paramètre Appuyer sur Entrée pour coler et vider le presse-papier
dans Outils ⟶ Options ⟶ LibreOffice Calc ⟶ Général.

coché / décoché :
coché.gif
décoché.gif
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 1.1.5 – 4.1.16
LibreOffice 3.3.0.4 – 26.2
Windows 7,10,11 64-bit
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par jémy urles »

Merci cwolan,
:oops: Je n'avais pas remarqué ces "détails"
Avec LibreOfficice le fonctionnement est OK.
Pas d'insertion avec OpenOffice, comment faire ? Principe de base de la macro ?
Merci pour vos :idea:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26200
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par Dude »

Bis repetitae :
Dude a écrit : 23 févr. 2026 15:22 Je ne vois pas l'intérêt d'insérer avant la dernière ligne.
Explique toi en fournissant des copies d'écran de ce que tu cherches à faire.
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par jémy urles »

Ecran AVANT l'insertion.png
Ecran AVANT l'insertion

Ecran APRES l'insertion.png
Ecran APRES l'insertion en ligne 540 et saisie du poids (52.0 kg). Le graphique est automatiquement décalé d'une ligne vers le bas
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26200
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par Dude »

Les copies d'écran ne ressemblent pas au document que tu fournis.
Le graphique et la partie du résumé "Min / Moyenne / Max" ne sont pas aux mêmes endroits.


Et maintenant, tu annonces ceci :
jémy urles a écrit : 25 févr. 2026 12:18 Le graphique est automatiquement décalé d'une ligne vers le bas
On en revient alors au problème XY d'il y a 3 jours :
Dude a écrit : 20 févr. 2026 14:30 Si tu cherches à incorporer une nouvelle série de données pour ton graphique, il est plus simple de le supprimer puis de le reconstruire en indiquant la nouvelle plage.
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par jémy urles »

Le graphique et la partie du résumé "Min / Moyenne / Max" ne sont pas aux mêmes endroits.
Non, le fichier Relevé poids ess3 envoyé hier a cette présentation.
Si tu cherches à incorporer une nouvelle série de données pour ton graphique, il est plus simple de le supprimer puis de le reconstruire en indiquant la nouvelle plage.
Peux-tu en dire un peu plus :D Je ne sais le faire pour l'instant.

J'ai écrit la macro en utilisant l'enregistreur de macro, fonctions UNO, adaptations, et suis arrivé à ce résultat en utilisant InsertRowsBefore.

Merci pour l'aide 8)
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26200
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par Dude »

En installant zBasic et en utilisant sa fonction zFeuille.Insere, on peut insérer une ligne après ou avant la dernière :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
jémy urles
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 27 sept. 2024 12:16

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par jémy urles »

Merci Dude 8)
Code plus compact avec zBasic, efficient et compatible LibreOffice/OpenOffrice.
Détail:Entre LibreOffice et OpenOffrice le graphique n'est pas exactement le même.

Code : Tout sélectionner

REM  *****  BASIC  *****
Option Explicit

Sub MacroPoids
	extendArray("A", "C", 4, "B")
End Sub

Rem Extension d'un tableau: répétition de la dernière ligne, curseur positionné pour saisie dans la colonne colIn
Sub extendArray (colDebTab As String, colFinTab As String, indDebTab As Long, colIn As String, Optional feuille As String)
	Dim nVide		As Long
	Dim nDerLigne	As Long

	GlobalScope.BasicLibraries.LoadLibrary("zBasic")
	nVide = zPlage.LigneVide(feuille, colDebTab & indDebTab & ":" & colFinTab & 10000)	' 1ère ligne vide
	nDerLigne = nVide - 1												' Dernière ligne renseignée
	zFeuille.Insere("L", nVide, 1)											' Insertion ligne vide en fin de tableau
	zPlage.Copie(feuille, colDebTab & nDerLigne & ":" & colFinTab & nDerLigne, feuille, colDebTab & nVide & ":" & colFinTab & nVide)	' Copie de la ligne précédente
	zCellule.Courante(colIn & nVide)										' Focus sur la cellule de saisie
End Sub
Dernière modification par jémy urles le 27 févr. 2026 14:39, modifié 3 fois.
LibreOffice 25.8.5.2
OpenOffice 4.1.16
Windows 11 Professionnel
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12851
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: [Calc] Comportement surprenant lors de l'extension d'un tableau

Message par Bidouille »

Bonjour,

Si votre problème est résolu, veuillez clôturer comme il se doit en ajoutant [Résolu].

Si vous avez un autre problème, veuillez ouvrir un nouveau fil avec un titre explicite.

Merci de nous aider à garder la qualité de ce forum optimum.