Merci pour les explications et la correction de la partie de la macro, cela a 
marché.

Le jeudi 18 décembre 2025, 12:22:41 heure normale d’Europe centrale Bernard 
Schoenacker a écrit :
> Bonjour,
> 
> Le problème ne vient pas d’une disparition de CellAddress dans LibreOffice ≥
> 7.2 : l’API n’a pas changé sur ce point. La confusion vient surtout de la
> signature de addNewByName().
> 
> Rappel de la signature UNO (toujours valable) :
> 
> addNewByName( Name As String,
>               Content As String,
>               BaseAddress As com.sun.star.table.CellAddress,
>               Type As Long )
> 
> 
> Points importants :
> 
> le 2ᵉ argument n’est pas un objet plage, mais une chaîne représentant
> une expression de type formule (par ex. une adresse absolue) ;
> 
> le 3ᵉ argument est bien un CellAddress, qui peut être obtenu proprement
> depuis une cellule existante.
> 
> Une manière robuste (et compatible anciennes / nouvelles versions) d’écrire
> le code est donc :
> 
> Dim oDoc As Object, oSheet As Object, oNamed As Object
> Dim oRange As Object, oBaseCell As Object
> Dim sName As String, sContent As String
> 
> oDoc = ThisComponent
> oSheet = feuille   ' ou oDoc.Sheets.getByIndex(0)
> oNamed = oDoc.NamedRanges
> 
> oRange = oSheet.getCellRangeByPosition(numcolonne, 1, numcolonne, nbligne-1)
> sName = "plage" & numcolonne
> sContent = oRange.AbsoluteName              ' ex : "$Feuille1.$C$2:$C$50"
> 
> oBaseCell = oSheet.getCellByPosition(numcolonne, 1)
> 
> If oNamed.hasByName(sName) Then
>     oNamed.removeByName(sName)
> End If
> 
> oNamed.addNewByName(sName, sContent, oBaseCell.CellAddress, 0)
> 
> 
> En résumé :
> 
> pas besoin d’abandonner CellAddress ;
> 
> il faut simplement fournir à addNewByName() une chaîne pour le contenu
> (et non un objet plage).
> 
> En espérant que cela aide à débloquer la migration.
> 
> Cordialement,
> 
> 
> Bernard Schœnacker
> 3 rue de la porte de France
> 57930 Fénétrange
> 
> Technicien Méthodes –
> Rédacteur Technique industriel
> 
> ----- Tulum <[email protected]> a écrit :
> > Bonjour,
> > 
> > Au travail nous venons de passer de la version 7.1 à la version 25.2.
> > J'utilise une macro dans laquelle, entre autres je nomme des plages de
> > cellule. cela ne marche plus et je n'arrive pas à corriger la macro pour
> > qu'elle refonctionne. Qwant et le chat ne sont mes amis sur ce coup.
> > 
> > Voila le code qui fonctionnait avant :
> > 
> > 
> > plage=feuille.getcellrangebyposition(numcolonne,1,numcolonne,nbligne-1)
> > 
> >              nomplage="plage"&numcolonne
> >              CellAddress.sheet=0
> >              CellAddress.column=numcolonne
> >              CellAddress.Row=1
> >              plages.addNewByName(nomplage, plage,CellAddress,0)
> > 
> > Elle ne fonctionne plus, la raison semble être le fait que CellAddress
> > n'est plus valable depuis la version 7.2 de libreoffice. Apparemment, il
> > faut utiliser getCellByPosition à la place.
> > 
> > Et c'est là que coince, je n'arrive pas à trouver la bonne synthaxe pour
> > plages.addNewByName.
> > 
> > Si quelqu'un a une idée et sait comment résoudre mon problème, merci


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

Répondre à