Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum 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 !
J'ai une procédure pour retrouver une cellule à partir de son contenu.
Ce n'est donc pas toujours la même cellule qui ressort. Une fois la cellule identifiée, je voudrais récupéré le nom que je lui ai donné.
J'ai essayé ainsi :
Si tu es certain que la valeur recherchée se trouve dans une cellule nommée, tu peux alors ne parcourir que celles-ci. Elles sont accessibles via l'objet conteneur "NamedRanges" :
doc = thiscomponent
plagenommees = doc.NamedRanges
for each plagenommee in plagenommees
plage = plagenommee.ReferredCells
if plage.supportsService("com.sun.star.sheet.SheetCell") then
if plage.String = contenu_recherche then 'ou plage.Value
nom_cellule = plagenommee.Name
msgbox plagenommee.Name
exit sub
end if
end if
next plagenommee
Cordialement.
AOOo 4.1.7 sur Win10 AOOo 4.1.x sur Linux Mint LibreOffice 5.x/6.x sur Linux Mint
-- ▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Bonjour Hubert,
Merci pour ton aide.
Je suis un peu perdu.
Je joins le doc hyper simplifié de ce que je fais.
Ce qui m'importe, outre le fait de trouver le terme recherché, est d'avoir le nom de la cellule.
C'est important pour la suite.
Sub Main
Dim oDoc, oFeuille, Cellule as Object
Dim oZone, oZone2 as Variant
Dim LigneVide, colon as long
Dim deb, fin as String
oDoc = ThisComponent
' On définit une zone
oFeuille = thiscomponent.Sheets.getByName("Animaux") 'Feuille source
oZone = oFeuille.getCellRangeByPosition(1, 0, 1, 10) 'Zone de destination où sera cherchée
' On recherche
Dim recherche as object, celluletrouvee as object
Dim trouv as object, positiondelacelluletrouvee as variant, x as long
Dim Cell as object
recherche = oZone.createsearchdescriptor
reference = "Chien"
with recherche
.searchstring = reference
.searchwords = true
.searchtype = 1 'rechercher dans les valeurs fixes ou résultant d'une formule
end with
trouv = oZone.findall(recherche)
Cell = trouv(0)
Msgbox ("Le chien est colonne " & Cell.CellAddress.column)
Msgbox ("et ligne " & Cell.CellAddress.row+1)
Msgbox("Mais quel est ne nom de la cellule où il est ?")
Cellule = oFeuille.getCellByPosition(Cell.CellAddress.column, Cell.CellAddress.row+1) '
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Whiteneck a écrit :Une fois la cellule identifiée, je voudrais récupéré le nom que je lui ai donné.
Qu'entends-tu exactement par là ? Quelle procédure utilises-tu pour lui donner un nom ? Ce nom est-il unique ou concerne-t-il une plage plus grande ?
Ce sera plus simple si tu nous fournis une fichier structuré comme ton fichier d'origine...
AOOo 4.1.7 sur Win10 AOOo 4.1.x sur Linux Mint LibreOffice 5.x/6.x sur Linux Mint
-- ▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
doc = thiscomponent
plagenommees = doc.NamedRanges
for each plagenommee in plagenommees
plage = plagenommee.ReferredCells
if plage.supportsService("com.sun.star.sheet.SheetCell") then
if plage.AbsoluteName = contenu_recherche then 'ou plage.
nom_cellule = plagenommee.Name
msgbox plagenommee.Name
exit sub
end if
end if
next plagenommee