[Résolu][Calc]cibler derniere cellule par nom

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Whiteneck
Membre hOOnoraire
Membre hOOnoraire
Messages : 159
Inscription : 20 janv. 2013 11:19

[Résolu][Calc]cibler derniere cellule par nom

Message par Whiteneck »

Bonjour

Je cherche à cibler la dernière cellule renseignée dans une zone.
J'y arrive en déterminant la zone par sa position mai plus par son nom.
Je ne sais pas d'où vient mon erreur.

Si j'écris ceci ça fonctionne :

Code : Tout sélectionner

oZone = oFeuille.getCellRangeByPosition(1,10,1,20) 'Zone de destination
Mais je voudrais le remplacer par cela :

Code : Tout sélectionner

oZone = oFeuille.getCellRangeByName("Cellule_deb","Cellule_fin") 'Zone de destination
Ce que j'ai fait :

Code : Tout sélectionner

Sub Dernierecellule
Dim oDoc, ofeuille, Cellule as Object
Dim oZone as Variant
Dim LigneVide, colon as long

oDoc = ThisComponent
oFeuille = oDoc.CurrentController.ActiveSheet
oFeuille = thiscomponent.Sheets.getByName("Nature") 	'Feuille source

colon = oFeuille.getCellRangeByName("Cellule_deb").CellAddress.Column

oZone = oFeuille.getCellRangeByPosition(1,10,1,20) 'Zone de destination
'C'est ici que ça coince !
'oZone = oFeuille.getCellRangeByName("Cellule_deb","Cellule_fin") 'Zone de destination

LigneVide = oZone.QueryEmptyCells.RangeAddresses(0).StartRow
Cellule = oFeuille.getCellByPosition(colon, LigneVide-1)

Msgbox(Cellule.string)
end sub
Merci de votre aide :D
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Whiteneck le 09 mai 2018 12:34, modifié 1 fois.
LibreOffice Version : 6.3.6.2 (x64) / Windows 8.1
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc]cibler derniere cellule par nom

Message par Piaf »

Bonjour
Tu peux tester

Code : Tout sélectionner

Sub Dernierecellule
Dim oDoc, ofeuille, Cellule as Object
Dim oZone as Variant
Dim LigneVide, colon as long
Dim deb as String, fin as String
	oDoc = ThisComponent
	oFeuille = oDoc.CurrentController.ActiveSheet
	oFeuille = thiscomponent.Sheets.getByName("Nature") 	'Feuille source
	colon = oFeuille.getCellRangeByName("Cellule_deb").CellAddress.Column
	deb = Split(oFeuille.getCellRangeByName("Cellule_deb").AbsoluteName,".")(1)
	fin = Split(oFeuille.getCellRangeByName("Cellule_fin").AbsoluteName,".")(1)
	oZone = oFeuille.getCellRangeByName(deb & ":" & fin) 'Zone de destination
	LigneVide = oZone.QueryEmptyCells.RangeAddresses(0).StartRow
	Cellule = oFeuille.getCellByPosition(colon, LigneVide-1)
	Msgbox(Cellule.string)
end sub
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Whiteneck
Membre hOOnoraire
Membre hOOnoraire
Messages : 159
Inscription : 20 janv. 2013 11:19

Re: [Calc]cibler derniere cellule par nom

Message par Whiteneck »

Merci beaucoup piaf (encore une fois), ça fonctionne très bien.
LibreOffice Version : 6.3.6.2 (x64) / Windows 8.1
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Résolu][Calc]cibler derniere cellule par nom

Message par Churay »

Bonjour,

Un peu tardivement...

mais on peut faire un peu plus court....

Code : Tout sélectionner

Sub DerCell
Dim oDoc, ofeuille, Cellule as Object
Dim oZone as Variant
Dim LigneVide
Dim deb AS Long, fin  AS Long, Col AS Long
	oDoc = ThisComponent
	oFeuille = thiscomponent.Sheets.getByName("Nature")    'Feuille source
	col = oFeuille.getCellRangeByName("Cellule_deb").CellAddress.Column
	deb = oFeuille.getCellRangeByName("Cellule_deb").CellAddress.Row
	fin = oFeuille.getCellRangeByName("Cellule_fin").CellAddress.Row
	oZone = oFeuille.getCellRangeByPosition(Col,  deb, Col, fin) 'Zone de destination
	LigneVide = oZone.QueryEmptyCells.RangeAddresses(0).StartRow
	Cellule = oFeuille.getCellByPosition(col, LigneVide-1)
	Msgbox(Cellule.string, 32, "La dernière Cellule contient")
end sub
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Whiteneck
Membre hOOnoraire
Membre hOOnoraire
Messages : 159
Inscription : 20 janv. 2013 11:19

Re: [Résolu][Calc]cibler derniere cellule par nom

Message par Whiteneck »

Un peu tardivement... Merci
LibreOffice Version : 6.3.6.2 (x64) / Windows 8.1