Página 1 de 1

[RESUELTO] Obtener letra de una columna

NotaPublicado: Mié Jul 08, 2015 5:21 am
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:

Re: Obtener letra de una columna

NotaPublicado: Mié Jul 08, 2015 12:11 pm
por xiseme
=ELEGIR(COLUMNA();"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"... xx ...")

Re: Obtener letra de una columna

NotaPublicado: Mié Jul 08, 2015 12:36 pm
por daniel.r.23
Eso me sirve en caso de estar trabajando con formulas, pero yo estoy trabajando con las macros. Alguna idea???

Re: Obtener letra de una columna

NotaPublicado: Mié Jul 08, 2015 1:02 pm
por PepeOooSevilla
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.

Re: Obtener letra de una columna

NotaPublicado: Mié Jul 08, 2015 1:13 pm
por FJCC-ES
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

Re: Obtener letra de una columna

NotaPublicado: Mié Jul 08, 2015 3:15 pm
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