UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO Ayuda, error 13 en Macro el 23/04/12, 12:44 pm

mastoca


Buenos dias Amigos...

necesito un poco de ayuda con una macro que tome de inet y modifique para usarla en planillas de la empresa donde trabajo, lo que necesito que haga la macro, lo hace bien, el problema es que al borrar celdas en la hoja involucrada me aparece un cuadro de mensaje que dice "Se ha producido el error '13' en el tiempo de ejecucio" y mas abajo dice "no coinciden los tipos", la verdad es que no se como arreglarlo, sin modificar las acciones de la macro, ojala me puedan ayudar, a continuacion les dejo la macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim largo As Byte

largo = Len(Target)
'=9 cantidad de caracteres de la celda
'="2" se refiere a la segunda columna B, puedes modificar segun el numero de columna que necesites
'>3 se refiere a en que fila va a empezar a checar los datos , puedes modificar segun la fila donde inician tus datos
If largo = 9 And Target.Column = "4" And Target.Row = 8 Then

For x = 1 To 9
If x = 2 Or x = 5 Then
CADENA = CADENA + Mid$(Target, x, 1) + "."
ElseIf x = 9 Then
CADENA = CADENA + "-" + Mid$(Target, x, 1)
Else
CADENA = CADENA + Mid$(Target, x, 1)
End If
Next x
Target.Value = CADENA
End If
largo = Len(Target)
'=9 cantidad de caracteres de la celda
'="2" se refiere a la segunda columna B, puedes modificar segun el numero de columna que necesites
'>3 se refiere a en que fila va a empezar a checar los datos , puedes modificar segun la fila donde inician tus datos
If largo = 8 And Target.Column = "4" And Target.Row = 8 Then
For x = 1 To 8
If x = 1 Or x = 4 Then
CADENA = CADENA + Mid$(Target, x, 1) + "."
ElseIf x = 8 Then
CADENA = CADENA + "-" + Mid$(Target, x, 1)
Else
CADENA = CADENA + Mid$(Target, x, 1)
End If
Next x
Target.Value = CADENA
End If
largo = Len(Target)
'=9 cantidad de caracteres de la celda
'="2" se refiere a la segunda columna B, puedes modificar segun el numero de columna que necesites
'>3 se refiere a en que fila va a empezar a checar los datos , puedes modificar segun la fila donde inician tus datos
If largo = 9 And Target.Column = "4" And Target.Row = 17 Then

For x = 1 To 9
If x = 2 Or x = 5 Then
CADENA = CADENA + Mid$(Target, x, 1) + "."
ElseIf x = 9 Then
CADENA = CADENA + "-" + Mid$(Target, x, 1)
Else
CADENA = CADENA + Mid$(Target, x, 1)
End If
Next x
Target.Value = CADENA
End If
largo = Len(Target)
'=9 cantidad de caracteres de la celda
'="2" se refiere a la segunda columna B, puedes modificar segun el numero de columna que necesites
'>3 se refiere a en que fila va a empezar a checar los datos , puedes modificar segun la fila donde inician tus datos
If largo = 8 And Target.Column = "4" And Target.Row = 17 Then
For x = 1 To 8
If x = 1 Or x = 4 Then
CADENA = CADENA + Mid$(Target, x, 1) + "."
ElseIf x = 8 Then
CADENA = CADENA + "-" + Mid$(Target, x, 1)
Else
CADENA = CADENA + Mid$(Target, x, 1)
End If
Next x
Target.Value = CADENA
End If
End Sub


gracias por su ayuda

2RESUELTO Re: Ayuda, error 13 en Macro el 23/04/12, 05:07 pm

ioyama


Hola mastoca

Introduce al principio de la macro (después del Dim por ejemplo)

If Target.Count > 1 Then Exit Sub

tal que

Código:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim largo As Byte
If Target.Count > 1 Then Exit Sub
largo = Len(Target)
....

Con esto debería valerte.

Un saludo desde Vitoria



Última edición por ioyama el 23/04/12, 06:05 pm, editado 2 veces (Razón : Corrección de una falta ortográfica)

3RESUELTO Re: Ayuda, error 13 en Macro el 23/04/12, 05:32 pm

mastoca


ioyama escribió:Hola mastoca

Introduce al principuo de la macro (despues del Dim por ejemplo

If Target.Count > 1 Then Exit Sub

tal que

Código:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim largo As Byte
If Target.Count > 1 Then Exit Sub
largo = Len(Target)
....

Con esto debería valerte.

Un saludo desde Vitoria

Muchas Gracias!!!!!!

realmente me sorprende que la solucion sea tan simple... claro esta para un usuario bajo el promedio como yo, fue imposible solucionarlo....

de verdad te agradezco la ayuda.. con esto puedo usar el libro sin problemas... muchas muchas gracias

Sr. Moderador, si quiere puede cerrar el tema ya que esta solucionado. Muchas Gracias again...

4RESUELTO Re: Ayuda, error 13 en Macro el 24/04/12, 07:15 am

Admin


Admin
Entonces cerramos este tema.

Gracias ioyama!!!

http://www.universoexcelforo.com

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.