Je voudrais créer une macro avec retour sur un onglet à la dernière saisie

Je suis un novice, j’ai créée une macro mais je bute sur un point. Je retombe toujours sur la même cellule. je veux retomber sur la derniére cellule lors du dernier enregistrement. Voici ma macro :

sub Consommation
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 15
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
end sub

Merci pour la réponse

Bonjour

Désolé mais la formulation de la question étant imprécise je ne suis pas certain d’apporter la “bonne” réponse.

De ce que je comprends tu souhaites que la macro sélectionne la dernière cellule remplie de la dernière feuille du classeur. Si c’est bien cela tu peux utiliser quelque chose comme :

sub Consommation
dim oSheet as object
dim iNbFeuilles as integer
dim args1(0) as new com.sun.star.beans.PropertyValue 

iNbFeuilles = thiscomponent.sheets.count

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

args1(0).Name = "Nr" 
args1(0).Value = iNbFeuilles

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1()) 

args1(0).Name = "Sel"
args1(0).Value = false

dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args1())

end sub

Explications :

  • thiscomponent : le classeur courant
  • sheets : la collection des feuilles
  • .count : le nombre de feuilles dans cette collection

[Ajout 30-03-20 17:10]

@Calius Tu surestimes nos capacités de divination… Il aurait été tellement plus simple de joindre un exemple de ton classeur (si possible réduit au minimum permettant de comprendre ton tableau et sans données confidentielles ou personnelles).

De ce que je crois comprendre tu as défini une structure, par exemple avec des formules et ou des bordures, prévoyant la saisie ultérieure de données. Si c’est ça, en effet GoToEndOfData ne convient pas. J’avais écrit un exemple (avec un classeur…) de macro permettant de répondre à ce cas sur notre wiki.

Cordialement

Bonjour pierre-yves Samyn
J’ai essayé avec “.uno:GoToEndOfData” mais j’abouti toujours sur la cellule H462 qui correspond à la dernière cellule de mon tableau.
Je souhaiterais me retrouver sur la cellule A35 qui est pour le moment la dernière cellule enregistrée. A chaque fois la colonne reste A mais la ligne accroit á chaque enregistrement.
Merci d’avance.
Cordialement

Bonjour pierre-yves Samyn J’ai essayé avec “.uno:GoToEndOfData” mais j’abouti toujours sur la cellule H462 qui correspond à la dernière cellule de mon tableau. Je souhaiterais me retrouver sur la cellule A35 qui est pour le moment la dernière cellule enregistrée. A chaque fois la colonne reste A mais la ligne accroit á chaque enregistrement. Merci d’avance. Cordialement

et donc ma réponse te convient (utilisation de GoToEndOfData) ?