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 Problema con Macro el 23/08/12, 02:02 pm

aberto7


tengo un problema con una macro donde me marca un error tipo 13 en el segundo ciclo IF no se como solucionarlo si alguien pudiera ayudarme el código es el siguiente




Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)


Dim lngResponse As Long
Dim URL As String, strEmail As String, strSubject As String
If Left(Target.Address, 2) = "$K" Then
If Target.Value < Range("$M" & Right(Target.Address, 2)).Value Then
lngResponse = MsgBox("No hay pintura suficiente! , ¿Desea enviar un correro a compras para requerir más pintura?", vbYesNo)
If lngResponse = vbYes Then

strEmail = Range("$S" & Right(Target.Address, 2)).Value

strSubject = " Requerimiento de pintura al departamento de compras "

strSubject = Application.WorksheetFunction.Substitute(strSubject, " ", "%20")

Msg = Msg & " Se requiere la compra urgente de pintura " & Range("$E" & Right(Target.Address, 2)).Value & " '" & Range("$C" & Right(Target.Address, 2)).Value & " '" & Range("$D" & Right(Target.Address, 2)).Value & "' Por la cantidad de: " & " ' " & Range("$U" & Right(Target.Address, 2)).Value & "' cajas"

strURL = "mailto:" & strEmail & "?subject=" & strSubject & "&body=" & Msg

ShellExecute 0&, vbNullString, strURL, vbNullString, vbNullString, vbNormalFocus

End If
End If
End If
End Sub

2RESUELTO Re: Problema con Macro el 23/08/12, 06:04 pm

hugotron


Que tal aberto7.

Sería bueno que subieras el libro con la macro, para ver detenidamente la estructura de los datos que usas, y en qué momento salta el error.

El error 13 típicamente salta porque no se ha declarado una variable apropiadamente, es decir, que el valor que quieres forzar en la variable no corresponde al tipo de la misma.

Busca en tu código cuál de las variables podría estar intentado guardar datos que no corresponden al tipo declarado de la variable.

¡Saludos!

3RESUELTO Re: Problema con Macro el 23/08/12, 06:18 pm

aberto7


gracias pro la ayua
Archivos
Formato pintura (ejemplo).zip
este es el archivo que estoy utilizando gracias por la ayuda hugotron a ver si tu encuentras el error
No tienes los permisos para descargar los archivos.
(83 KB)

4RESUELTO Re: Problema con Macro el 23/08/12, 06:19 pm

aberto7


este error esta recortado del formato original
en el documento original después de la fila 100 aproximadamente es cuando aparece el error en las primeras filas no haya problema, sino que este aparece cuando quiero ejecutar la operación en las ultimas filas

saludos

5RESUELTO Re: Problema con Macro el 23/08/12, 06:37 pm

hugotron


Si entendí correctamente el problema, con este código podrías tener una solución:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)


Dim lngResponse As Long
Dim URL As String, strEmail As String, strSubject As String
If Target.Column = 11 Then
If Target.Value < Range("$M" & Target.Row).Value Then
lngResponse = MsgBox("No hay pintura suficiente! , ¿Desea enviar un correro a compras para requerir más pintura?", vbYesNo)
If lngResponse = vbYes Then

strEmail = Range("$S" & Target.Row).Value

strSubject = " Requerimiento de pintura al departamento de compras "

strSubject = Application.WorksheetFunction.Substitute(strSubject, " ", "%20")

Msg = Msg & " Se requiere la compra urgente de pintura " & Range("$E" & Target.Row).Value & " '" & Range("$C" & Target.Row).Value & " '" & Range("$D" & Target.Row).Value & "' Por la cantidad de: " & " ' " & Range("$U" & Target.Row).Value & "' cajas"

strURL = "mailto:" & strEmail & "?subject=" & strSubject & "&body=" & Msg

ShellExecute 0&, vbNullString, strURL, vbNullString, vbNullString, vbNormalFocus

End If
End If
End If
End Sub


Solamente cambié la manera en que estabas determinando el número de fila de los datos que tomabas, pues usando RIGHT o LEFT tienes que especificar cuantos caracteres tomabas de Target.Address y siempre tenías 2 caracteres...

Naturalmente al llegar a una fila como la 100 por ejemplo, ya son 3 caracteres, ese podría ser tu error. Inténtalo y comentas.

¡Saludos!

6RESUELTO Re: Problema con Macro el 23/08/12, 07:55 pm

aberto7


Excelente aporte realmente no había pensado en eso, gracias por la ayuda has solucionado mi problema.

espero y al menos ese código que te pase te pueda servir de algo más adelante, saludos.

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.