Merci Jean-François, je vais aussi essayer cette solution et voir si c'est
plus rapide que celle que j'ai mentionnée (Hubert).

Mais comme dit à Yves, ce plantage "collatéral" m'intrigue ...
Quand même 7 ans sans soucis et de nombreuses versions de LibO et la v6 me
fait un drôle de jeu de billard. J'aimerai qu'il y ait une vraie raison (par
exemple le dispatcher interdit sur un fichier caché que les versions
antérieures laissaient - à tort - passer).

Michel


> -----Message d'origine-----
> De : Jean-Francois Nifenecker [mailto:jean-
> [email protected]]
> Envoyé : vendredi 6 juillet 2018 19:16
> À : Michel Rudelle; [email protected]
> Objet : Re: [fr-qa] [Calc] [Basic] plantage v6 sur fermeture de fichier
> 
> Bonjour Michel,
> 
> Le 06/07/2018 à 18:19, Michel Rudelle a écrit :
> >
> > Je traite par macro de gros fichiers CSV. Après leur ouverture, j'ai
> besoin
> > de connaître l'étendue des données (nombre max de colonnes et lignes).
> Je
> > n'ai  pas trouvé de propriété de la feuille qui me donne cette info,
> aussi
> > j'utilise jusqu'à présent une procédure nommée selecTout (élaborée avec
> > l'enregistreur de macro) qui utilise le dispatcher et qui renvoie la
> zone de
> > la cellule A1 à la dernière cellule du fichier. Ça marche bien et c'est
> > rapide, et ça dure depuis 2011.
> 
> bref, tu veux l'équivalent d'un Ctrl + * ?
> 
> J'utilise cette macro pour connaître la position de la dernière cellule
> en bas à droite d'une feuille :
> 
> 8< ------------------------------------------------------------
> 
> Function LastUsedCell(ByRef pSheet As Object) As Object
> 'Returns the last cell used in a given sheet (lower-right corner).
> 'Input:
> '-- pSheet: the sheet object to explore.
> 'Output: the last used cell object in the sheet.
> 
>       Dim l_Origin As String          'origin cell address
>       Dim lo_UsedRange As Object
>       Dim lo_CellCur As Object        'a cell cursor
> 
>       'create a cursor on the used range
>       l_Origin = "A1"
>       lo_CellCur =
> pSheet.createCursorByRange(pSheet.getCellRangeByName(l_Origin))
>       lo_CellCur.gotoEndOfUsedArea(False)
>       'get the used range
>       lo_UsedRange = pSheet.getCellRangeByName(lo_CellCur.AbsoluteName)
> 
>       LastUsedCell = lo_UsedRange
> End Function 'LastUsedCell
> 
> ------------------------------------------------------------ >8
> 
> En espérant que ça t'aidera.
> 
> 
> Très cordialement,
> --
> Jean-Francois Nifenecker, Bordeaux


-- 
Envoyez un mail à [email protected] pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/qa/
Privacy Policy: https://www.documentfoundation.org/privacy

Répondre à