Disparition de 6 lignes sur un copier/coller

Bonjour,

Je fais un copier coller d’un tableau de 5 colonnes et 10 lignes mais extensible en nombre de lignes d’une feuille sur une autre.
J’ai actuellement 10 lignes de copiées mais au moment du collage, je vois que je ne colle que 4 lignes (les 4 dernières) j’ai donc perdu les 6 premières sans que je comprenne pourquoi.
Je ne sais pas ce que deviennent ces lignes. j’ai pourtant analysé mon code et re analysé et…re…
Cela me dépasse totalement. Le mode débogage m’a seulement permis de vérifier que mes variables étaient bonnes:
sNbrePA=“10” et PremiereLigneLibre=“12”
Je joins mon code
Merci à vous par avanceCOMPTES3.ods

Bonjour @cricriilyenadeja

Aucune procédure dans ton classeur… :slight_smile: ?

Cordialement

Bonjour Pierres-yves,

Merci de t’intéresser à mon problème.
Je ne comprends rien à LIBO, car de mon côté, dans comptes3.ods je vois ma macro :

REM ***** BASIC *****

option explicit

sub InsererPA

dim aSheet as object
dim oSheet as object
dim sNbrePA as string
dim sPremiereLigneLibre as string
dim document as object
dim dispatcher as object

oSheet = thiscomponent.sheets.getByName(“PRELEV_AUTO”)
sNbrePA = oSheet.getCellRangeByName(“F25”).string

document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = “ToPoint”
args1(0).Value = “$PRELEV_AUTO.$A$1:$E$” & sNbrePA
REM args1(0).Value = “$PRELEV_AUTO.$A$1:$E$10”

dispatcher.executeDispatch(document, “.uno:GoToCell”, “”, 0, args1())
dispatcher.executeDispatch(document, “.uno:Copy”, “”, 0, Array())

dim args2(0) as new com.sun.star.beans.PropertyValue

aSheet = thiscomponent.sheets.getByName(“SAISIE_COMPTES”)
sPremiereLigneLibre = aSheet.getCellRangeByName(“O1008”).string
args2(0).Name = “ToPoint”
args2(0).Value = “$SAISIE_COMPTES.$A$”& sPremiereLigneLibre

rem args2(0).Value = “$SAISIE_COMPTES.$A$50”

dispatcher.executeDispatch(document, “.uno:GoToCell”, “”, 0, args2())
dispatcher.executeDispatch(document, “.uno:Pasteunformatted”, “”, 0, Array())

end sub

@cricriilyenadeja a écrit:

de mon côté, dans comptes3.ods je vois ma macro…

Tu as sans doute créé ta macro dans la bibliothèque Mes macrosStandardModule1 et non dans COMPTES3.OdsStandardModule1. Pour simplifier :

  • Les macros stockées dans Mes macros sont “appelables” depuis n’importe quel document dans ta session de LibreOffice.
  • Les macros stockées dans un document ne sont “appelables” que depuis ce document.

Pour le copier-coller je ne reproduis pas le problème de perte de ligne. En revanche mon conseil serait de coller comme ceci :

args1(0).Name = "Flags"
args1(0).Value = "SVD"    
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args1())

Ce qui correspond à un collage spécial Texte, Nombres, Date & heure sans format.

J’ai inséré la macro corrigée dans la bibliothèque Standard du classeur COMPTES3.ods

Cordialement