[RESUELTO] Obtener letra de una columna

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Obtener letra de una columna

Notapor daniel.r.23 » Mié Jul 08, 2015 5:21 am

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
daniel.r.23
 
Mensajes: 79
Registrado: Vie Oct 04, 2013 8:41 pm

Re: Obtener letra de una columna

Notapor xiseme » Mié Jul 08, 2015 12:11 pm

=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.
xiseme
 
Mensajes: 1888
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Obtener letra de una columna

Notapor daniel.r.23 » Mié Jul 08, 2015 12:36 pm

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
daniel.r.23
 
Mensajes: 79
Registrado: Vie Oct 04, 2013 8:41 pm

Re: Obtener letra de una columna

Notapor PepeOooSevilla » Mié Jul 08, 2015 1:02 pm

Hola.
Del libro "Useful Macro Information For OpenOffice.org" de Andrew Pitonyak adapté esta función:
Código: Seleccionar todo   Expandir vistaContraer vista
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.2.8 (64 bits, Still, Empresarial o Estable) en Windows 10. Java 9.0.4 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Avatar de Usuario
PepeOooSevilla
 
Mensajes: 1132
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Obtener letra de una columna

Notapor FJCC-ES » Mié Jul 08, 2015 1:13 pm

Puede ver la columna donde empieza la selección actual con este código.
Código: Seleccionar todo   Expandir vistaContraer vista
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   Expandir vistaContraer vista
oHoja = ThisComponent.Sheets.getByName("Sheet1")
oCelda = oHoja.getCellByPosition(2,1)
Columnas = oCelda.Columns
Columna0 = Columnas.ElementNames(0)
print "Estamos en la columna " & Columna0
FJCC-ES
 
Mensajes: 696
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Obtener letra de una columna

Notapor xiseme » Mié Jul 08, 2015 3:15 pm

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.
xiseme
 
Mensajes: 1888
Registrado: Lun Nov 24, 2008 1:13 pm


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados