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
