Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Función que devuelva la referencia de la columna

publicado

Hola a todos,

 

Me gustaría preguntar si alguien tiene desarrollada una función tal que cuando el usuario introduzca un número cualquiera, entonces la función devuelva la referencia de la columna asociada a ese número.

Algo así, por ejemplo:

 

Function ReferenciarColumnas(numero As Integer) As String

Application.ScreenUpdating = False

   ' Limpiamos los errores anteriores (por si acaso)...
   Err.Clear

   ' Tratamos los errores de la función...
   On Error Resume Next

   ' Si el número introducido no es válido, entonces...
   If numero <= 0 Or numero > 16384 Then
      ' Notificamos al usuario con un mensaje de error...
      MsgBox "El número introducido no es válido." & vbCr & _
             "Por favor, el número introducido debe estar comprendido entre los valores 1 y 16384."
   ' En caso contrario...
   Else
      ' Notificamos al usuario con un mensaje de confirmación...
      MsgBox Chr(numero + 64)
   End If

End Function

 

El problema es cuando el usuario introduce un valor superior a 26, ya que supera la letra "Z".

Y habría que empezar otra vez desde la columna "A", pero añadiéndole la siguiente letra al final.

Es decir,

Número: 27 ---> Columna: AA

Número: 28 ---> Columna: AB

Número: 29 ---> Columna: AC

... y así sucesivamente, hasta llegar a la columna XFD.

 

Esta es la típica función que ya está desarrollada.

Por eso, pregunto por el foro a ver si alguien se anima a compartirla conmigo.

 

Gracias por vuestro tiempo.

Editado el por paikerr

Featured Replies

publicado
letras = Split(Columns(número).Address, "$")(2)

 

Editado el por Antoni

publicado
  • Autor
En 23/7/2021 at 17:46 , Antoni dijo:
letras = Split(Columns(número).Address, "$")(2)

 

Gracias @Antoni.

 

Así quedaría definida la función (por si a alguien le interesa):

Function ReferenciarColumnas(numero As Integer) As String

Application.ScreenUpdating = False

   ' Tratamos los errores de la función...
   On Error Resume Next

   ' Declaramos las variables de ámbito local...
   Dim letras As Variant
   letras = Split(ThisWorkbook.ActiveSheet.Columns(numero).Address, "$")

   ' Si el número introducido no es válido, entonces...
   If numero <= 0 Or numero > 16384 Then
      ' Notificamos al usuario con un mensaje de error...
      MsgBox Prompt:="Upps, parece que hubo un error... Por favor, el número introducido debe estar " & _
                     "comprendido entre los valores 1 y 16384.", _
             Title:="NUMERO INCORRECTO"
   ' En caso contrario...
   Else
      ' Referenciamos el número de columna...
      ReferenciarColumnas = letras(2)
   End If

End Function

 

Saludos.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.