[RESUELTO] macro distinguir texto o numero en una celda

Discute sobre la aplicación de hojas de cálculo
Responder
userpepe
Mensajes: 15
Registrado: Jue Jul 19, 2018 6:44 pm

[RESUELTO] macro distinguir texto o numero en una celda

Mensaje por userpepe »

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

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: 15
Registrado: Jue Jul 19, 2018 6:44 pm

Re: macro distinguir texto o numero en una celda

Mensaje por userpepe »

El problema es que no funciona el codigo que he puesto ahí arriba y no se suficiente para saber por que motivo no funciona.
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: macro distinguir texto o numero en una celda

Mensaje por FJCC-ES »

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

   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
userpepe
Mensajes: 15
Registrado: Jue Jul 19, 2018 6:44 pm

Re: macro distinguir texto o numero en una celda

Mensaje por userpepe »

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é.
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: macro distinguir texto o numero en una celda

Mensaje por FJCC-ES »

El archivo adjunto contiene la macro y no me da un error.
Adjuntos
Copiar.ods
(16.57 KiB) Descargado 113 veces
userpepe
Mensajes: 15
Registrado: Jue Jul 19, 2018 6:44 pm

Re: macro distinguir texto o numero en una celda

Mensaje por userpepe »

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
Responder