[RESUELTO] Obtener letra de una columna

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
daniel.r.23
Mensajes: 79
Registrado: Vie Oct 04, 2013 8:41 pm

[RESUELTO] Obtener letra de una columna

Mensaje por daniel.r.23 »

Buenas estoy necesitando saber como puedo obtener la letra que identifica una columna, ejemplo estoy en una posición i,j = 0,0 y quiero obtener como resultado "A", esto se puede? :alarm:
OpenOffice 3.4 en Windows 7 Ultimate SP1
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Obtener letra de una columna

Mensaje por xiseme »

=ELEGIR(COLUMNA();"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"... xx ...")
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
daniel.r.23
Mensajes: 79
Registrado: Vie Oct 04, 2013 8:41 pm

Re: Obtener letra de una columna

Mensaje por daniel.r.23 »

Eso me sirve en caso de estar trabajando con formulas, pero yo estoy trabajando con las macros. Alguna idea???
OpenOffice 3.4 en Windows 7 Ultimate SP1
Avatar de Usuario
PepeOooSevilla
Mensajes: 1480
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Obtener letra de una columna

Mensaje por PepeOooSevilla »

Hola.
Del libro "Useful Macro Information For OpenOffice.org" de Andrew Pitonyak adapté esta función:

Código: Seleccionar todo

Function NumColumACadena(ByVal NumColumna As Long) As String
' La columna 0 es la A, la 26 es la AA y la 1023 es la AMJ
	Dim ColumnaEnLetra As String
	If (NumColumna >= 0) And (NumColumna <= 1023) Then
		ColumnaEnLetra = ""
		Do While NumColumna >= 0
			ColumnaEnLetra = Chr(65 + NumColumna MOD 26) + ColumnaEnLetra
			NumColumna = (NumColumna \ 26) - 1
		Loop
	Else
		ColumnaEnLetra = "#REF!"
	End If
	NumColumACadena = ColumnaEnLetra
End Function
Saludos cordiales.
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Obtener letra de una columna

Mensaje por FJCC-ES »

Puede ver la columna donde empieza la selección actual con este código.

Código: Seleccionar todo

Sub Columna
CurrSel = ThisComponent.CurrentSelection
Columnas = CurrSel.Columns
Columna0 = Columnas.ElementNames(0)
print "La seleccion empieza en la columna " & Columna0
End Sub
Un objecto devuelto por el método getCellByPosition() tambien tiene la propiedad Columns.

Código: Seleccionar todo

oHoja = ThisComponent.Sheets.getByName("Sheet1")
oCelda = oHoja.getCellByPosition(2,1)
Columnas = oCelda.Columns
Columna0 = Columnas.ElementNames(0)
print "Estamos en la columna " & Columna0
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Obtener letra de una columna

Mensaje por xiseme »

daniel.r.23 escribió:... pero yo estoy trabajando con las macros...
Grrrr... ¡pues dilo de primeras, caramba!

Muevo el tema al subforo de Macros
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Responder