[RESUELTO] macro distinguir texto o numero en una celda

Discute sobre la aplicación de hojas de cálculo

[RESUELTO] macro distinguir texto o numero en una celda

Notapor userpepe » Lun Ago 06, 2018 8:25 pm

Hola a tod@s;

Estoy aprendiendo esto de las macros y me gustaria conseguir que mi macro analizase si el contenido de una columna es texto o numero y según eso copie el contenido de cadacelda de esa columna en otra. Si es texto en la columna 2 y si es número, que lo copie en la columna 4.

Código: Seleccionar todo   Expandir vistaContraer vista
Option Explicit


Sub CONTABILIDAD()
Dim oHoja As Object
Dim oRango As Object
Dim oCol As Object
Dim oCell As Object
Dim a As integer

   
   oHoja = ThisComponent.getCurrentController.getActiveSheet()

   oRango = ThisComponent.getCurrentSelection()
   
   oCol = oRango.getColumns.getByIndex(0)

   
   ThisComponent.getCurrentController.select(oCol)

    a = 0
      oCol = oRango.getColumns.getByIndex(0)
      oCell = oRango.getCellByPosition(0,a)     ' selecciona A1 (primer numero = columna, segundo numero = fila)

   
      For a = 0 to a = 1000
   '   MsgBox oCell.getType() '0: Vacia - 1: Número - 2: Texto - 3: Fórmula
           If oCell.getType = 2 Then
                oRango.copyRange(oRango.getCellByPosition(2,a),oCell.String)
            Else
                oRango.copyRange(oRango.getCellByPosition(4,a),oCell.Value)
            End If
        Next a
     
End Sub


Os agradezco de antemano vuestro tiempo por si podéis echarme una mano
Última edición por userpepe el Mar Ago 07, 2018 6:37 pm, editado 1 vez en total
userpepe
 
Mensajes: 11
Registrado: Jue Jul 19, 2018 6:44 pm

Re: macro distinguir texto o numero en una celda

Notapor userpepe » Lun Ago 06, 2018 8:26 pm

El problema es que no funciona el codigo que he puesto ahí arriba y no se suficiente para saber por que motivo no funciona.
userpepe
 
Mensajes: 11
Registrado: Jue Jul 19, 2018 6:44 pm

Re: macro distinguir texto o numero en una celda

Notapor FJCC-ES » Mar Ago 07, 2018 1:21 am

No entiendo exactamente que quiere hacer con la macro. Esta macro copia las celdas A1:A1001. Si la celda contiene texto, la copia a la columna C. Celdas de otros tipos se copian a la columna E.
Código: Seleccionar todo   Expandir vistaContraer vista
   oHoja = ThisComponent.getCurrentController.getActiveSheet()

For a = 0 to 1000
   '   MsgBox oCell.getType() '0: Vacia - 1: Número - 2: Texto - 3: Fórmula
     oCell = oHoja.getCellByPosition(0,a)
     If oCell.getType = 2 Then
           oHoja.copyRange(oHoja.getCellByPosition(2,a).CellAddress,oCell.RangeAddress)
     Else
           oHoja.copyRange(oHoja.getCellByPosition(4,a).CellAddress,oCell.RangeAddress)
     End If
Next a
FJCC-ES
 
Mensajes: 624
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: macro distinguir texto o numero en una celda

Notapor userpepe » Mar Ago 07, 2018 7:46 am

Buenos días FJCC-ES por responder tan rápido.

Exactamente eso que dices es lo que quiero que haga la macro, copiar las celdas en una columna u otra según si es texto o no. pero al ejecutarla me da un error (Type: com.sun.star.lang.IndexOutOfBoundsException - Message: .) y no se por qué.
userpepe
 
Mensajes: 11
Registrado: Jue Jul 19, 2018 6:44 pm

Re: macro distinguir texto o numero en una celda

Notapor FJCC-ES » Mar Ago 07, 2018 4:58 pm

El archivo adjunto contiene la macro y no me da un error.
Adjuntos
Copiar.ods
(16.57 KiB) 3 veces
FJCC-ES
 
Mensajes: 624
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: macro distinguir texto o numero en una celda

Notapor userpepe » Mar Ago 07, 2018 6:36 pm

Muchas Gracias FJCC-ES, he aplicado la macro que me mandas en el archivo y funciona perfectamente.
Compararé con la mia a ver donde estan los errores.

Un saludo
userpepe
 
Mensajes: 11
Registrado: Jue Jul 19, 2018 6:44 pm


Volver a Calc

¿Quién está conectado?

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