[Résolu][Calc]Considérer le résultat comme un mot

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]Considérer le résultat comme un mot

Message par Whiteneck »

Bonjour, :D

(Je ne suis pas sur d'avoir trouvé un bon titre au sujet, je manque de vocabulaire)

Je lance une recherche de cellule par son contenu, ici "Chien".
Cela fonctionne bien sauf lorsque le contenu est un résultat d'une "opération" dans la cellule.
Dans mon exemple la cellule A10, qui est égale à la A13, n'est pas prise en compte alors que je voudrais qu'elle le soit

Mon souci est à priori sur cette ligne :

Code : Tout sélectionner

	reference = "Chien"

Code : Tout sélectionner

Sub Main
dim oDoc, oFeuille, Cell as object
dim mazone, recherche, celluletrouvee as object
dim trouv as object

	oDoc = thiscomponent
	oFeuille = thiscomponent.Sheets.getByName("Nature")    'Feuille source
	oZone = oFeuille.getcellrangebyname("A1:A400")
	
	recherche = oZone.createsearchdescriptor
	reference = "Chien"
	with recherche
	.searchstring = reference
	.searchwords = true
	end with
	trouv = oZone.findall(recherche)
	Cell = trouv(0)
	Msgbox (Cell.CellAddress.column)
	Msgbox (Cell.CellAddress.row)
	
End Sub
Si quelqu'un peut m'aider.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Whiteneck le 10 mai 2018 10:01, modifié 1 fois.
LibreOffice Version : 6.3.6.2 (x64) / Windows 8.1
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
Messages : 1477
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc]Considérer le résultat comme un mot

Message par DLE »

Bonjour,

Vous devez coder une boucle pour récupérer toutes les valeurs trouvées.
SearchType = 1 prend en compte le résultat d'une formule.

Code : Tout sélectionner

Sub Main
dim oDoc, oFeuille, Cell as object
dim mazone, recherche, celluletrouvee as object
dim trouv as object

   oDoc = thiscomponent
   oFeuille = thiscomponent.Sheets.getByName("Nature")    'Feuille source
   oZone = oFeuille.getcellrangebyname("A1:A400")
   
   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)
   for x = 0 to trouv.count -1 
	   Cell = trouv(x)
	   Msgbox (Cell.CellAddress.column)
	   Msgbox (Cell.CellAddress.row)
   next x
End Sub
A+
MacOS Sonoma 14.4.1 (iMac-Intel) : AOO 4.1.15 , LibreOffice 7.6.5.2, Adoptium-temurinJDK_1.8.0_402 -
Windows 10 64 bits :
AOO 4.1.15, Libreoffice 7.1.8.1 - FireFox, Thunderbird, ORB 1.2.1
Whiteneck
Membre hOOnoraire
Membre hOOnoraire
Messages : 159
Inscription : 20 janv. 2013 11:19

Re: [Calc]Considérer le résultat comme un mot

Message par Whiteneck »

Merci, cela fonctionne ! :D
Et merci aussi pour l'explication.

Si je n'ai besoin que du premier résultat qui se présente, est-il faut de me passer de x et d'écrire comme ceci ?

Code : Tout sélectionner

      Cell = trouv(0) 'Recherche du premier résultat

Code : Tout sélectionner

Sub Main
dim oDoc, oFeuille, Cell as object
dim mazone, recherche, celluletrouvee as object
dim trouv as object

   oDoc = thiscomponent
   oFeuille = thiscomponent.Sheets.getByName("Nature")    'Feuille source
   oZone = oFeuille.getcellrangebyname("A1:A400")
   
   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) 'Recherche du premier résultat
      Msgbox (Cell.CellAddress.column)
      Msgbox (Cell.CellAddress.row)
End Sub
LibreOffice Version : 6.3.6.2 (x64) / Windows 8.1
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Résolu][Calc]Considérer le résultat comme un mot

Message par OOotremer971 »

Bonjour,
Whiteneck a écrit :Si je n'ai besoin que du premier résultat qui se présente ?

Code : Tout sélectionner

trouv = oZone.findFirst(jeCherche)
MsgBox(trouv.AbsoluteName)
@+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Whiteneck
Membre hOOnoraire
Membre hOOnoraire
Messages : 159
Inscription : 20 janv. 2013 11:19

Re: [Résolu][Calc]Considérer le résultat comme un mot

Message par Whiteneck »

merci pour les précisions
LibreOffice Version : 6.3.6.2 (x64) / Windows 8.1