[RESUELTO] Que la palabra empiece de una manera determinada

Discute sobre la aplicación de hojas de cálculo
Responder
elenitaex5
Mensajes: 56
Registrado: Sab Nov 28, 2009 2:49 pm
Ubicación: Madrid, España

[RESUELTO] Que la palabra empiece de una manera determinada

Mensaje por elenitaex5 »

buenas, tengo un problema a la hora de escribir en basic.
en la formula de una celda para buscar las palabras que se escriban empezando por una letra determinada ej. la "V" hay que introducir A1:A1 = "V.*" poniendo un punto y un asterisco luego.
como se puede poner en OooBasic esto mismo, es decir despues de definir la celda como se puede hacer que la condición sea que coja todas las palabras que empiecen por "V" ??
gracias
Última edición por elenitaex5 el Mié Dic 23, 2009 2:31 pm, editado 3 veces en total.
Openoffice 3.3.0
Sistema operativo Windows
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: que la palabra empiece de una manera determinada

Mensaje por mauricio »

Hola...

No entendi que es lo que "realmente" deseas, ¿podrías ser más explicito al respecto?, ¿tienes algún código de inicio con que partir?

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
elenitaex5
Mensajes: 56
Registrado: Sab Nov 28, 2009 2:49 pm
Ubicación: Madrid, España

Re: que la palabra empiece de una manera determinada

Mensaje por elenitaex5 »

tengo varias palabras escritas en celdas diferentes en una fila, en otra celda quiero que me cuente las palabras que tengo que empiecen por "V" así que en la celda he puesto la siguiente fórmula
=CONTAR.SI(C2:L2;"V.*")
esta fórmula me cuenta las palabras que empiezan por V. lo que quiero es saber como podría ponerse esto en OooBasic, es decir en una macro, como si fuese un condicional con IF... THEN
gracias
Openoffice 3.3.0
Sistema operativo Windows
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: que la palabra empiece de una manera determinada

Mensaje por FJCC-ES »

Código: Seleccionar todo

oDoc = ThisComponent
Sheet = oDoc.Sheets.getByIndex(0)
ResultCell = Sheet.getCellrangeByName("N1")
CellRange = Sheet.getCellRangeByName("A1:M30")
S_Desc = CellRange.createSearchDescriptor()
S_Desc.SearchRegularExpression = True
S_Desc.SearchCaseSensitive = True
S_Desc.SearchString = "\<V.*"  'encuentra palabras que empiezan con V
'S_Desc.SearchString = "^V.*"  'encuentra Parafos que empiezan con V
'S_Desc.SearchString = "V.*"    'encuentra celdas que contienen V
Cells = CellRange.FindAll(S_Desc)
ResultCell.Value = Cells.Count  'numero de celdas encontradas
elenitaex5
Mensajes: 56
Registrado: Sab Nov 28, 2009 2:49 pm
Ubicación: Madrid, España

Re: que la palabra empiece de una manera determinada

Mensaje por elenitaex5 »

muchas gracias por la respuesta, ha sido súper util :super:
Openoffice 3.3.0
Sistema operativo Windows
elenitaex5
Mensajes: 56
Registrado: Sab Nov 28, 2009 2:49 pm
Ubicación: Madrid, España

Re: que la palabra empiece de una manera determinada

Mensaje por elenitaex5 »

se puede utilizar el código que me has puesto con GetString??

sub VictoriaDerrota()
dim hoja as object
dim celda as object
dim celda2 as object
dim co1 as integer

hoja =thisComponent.getSheets().getbyname("Sheet1")
for co1 = 1 to 5
celda=hoja.getcellbyposition (co1,0)
celda2=hoja.getcellbyposition (0,co1)
if ocelda.GetString() = "/<V.*" then
ocelda2.SetString("empieza por V")
else ocelda2.SetString("derrota")
end if
next
end sub


da igual las palabras que ponga, siempre pone "derrota, o si quito el else no pone nada en ningún momento.

en realidad el programa quiero que coja las celdas donde haya una "V" y me ponga que es una victoria y si hay un número ponga que es una derrota.
Openoffice 3.3.0
Sistema operativo Windows
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: que la palabra empiece de una manera determinada

Mensaje por FJCC-ES »

¿Hace este código lo que necesita?

Código: Seleccionar todo

sub VictoriaDerrota()
dim hoja as object
dim celda as object
dim celda2 as object
dim co1 as integer

hoja =thisComponent.getSheets().getbyname("Hoja1")
for co1 = 1 to 5
	ocelda=hoja.getcellbyposition (co1,0)
	S_Desc = ocelda.createSearchDescriptor()
	S_Desc.SearchRegularExpression = True
	S_Desc.SearchCaseSensitive = True
	'S_Desc.SearchString = "\<V.*"  'encuentra palabras que empiezan con V
	'S_Desc.SearchString = "^V.*"  'encuentra Parafos que empiezan con V
	S_Desc.SearchString = "V.*"    'encuentra celdas que contienen V
	TestObj = ocelda.FindFirst(S_Desc)
	ocelda2=hoja.getcellbyposition (0,co1)
	if Not IsNull(TestObj) then
		ocelda2.SetString("empieza por V")
	else 
		ocelda2.SetString("derrota")
	end if
next
end sub
elenitaex5
Mensajes: 56
Registrado: Sab Nov 28, 2009 2:49 pm
Ubicación: Madrid, España

Re: que la palabra empiece de una manera determinada

Mensaje por elenitaex5 »

increíble muchas gracias por tu ayuda, eres un crack!!!! :D :super:
Openoffice 3.3.0
Sistema operativo Windows
Responder