............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Ayuda con este Codigo

Ver el tema anterior Ver el tema siguiente Ir abajo

Ayuda con este Codigo

Mensaje por Invitado el Jue Mar 05, 2009 4:38 pm

Hola compañeros espero puedan ayudarme con este sencillo codigo, pero que no puedo hacerlo funcionar como yo quiero, es el siguiente:


Sub Borrar_Base()
X = MsgBox("Se Borrarán todos los movimientos de la base de datos, DESEA CONTINUAR", vbYesNo + vbQuestion, "Opción")
IfX = vbYesThen
Sheets("Movimientos").Select
Range("A3:L3").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range("A3:L65533").Select
Selection.ClearContents
Range("A3").Select
Sheets("Menu").Select
X = MsgBox("Los Movimientos Fueron Borrados, Seleccione Otro MES Para Su Captura", vbOKOnly, "Mensaje")
IfX = vbNoElse
Sheets("Menu").Select
Application.ScreenUpdating = True
End Sub


Se que debo de tener un error pero no tengo experiencia en esto de las macros, en la macro anterior al momento que pregunta si deseo borrar los movimientos da la opcion de Yes o No, pero al seleccionar Yes, si borra los movimientos de la base de datos que esta en excel y despliega el mensaje, hasta aqui esta bien, pero si selecciono No, hace lo mismo es decir me borra los movimientos y me despliega el mismo mensaje que los movimientos fueron borrados, que es lo que tengo que modificar para que al decirle que No pues no lo hago o me despliegue otro mensaje. Espero su ayuda Gracias..
senorbacsol.

Invitado
Invitado


Volver arriba Ir abajo

Re: Ayuda con este Codigo

Mensaje por jairga el Jue Mar 05, 2009 6:04 pm

Estoy en el trabajo y no tengo mucho tiempo espero te ayude en algo.

saludos

prueba asi:

Sub Borrar_Base()
Application.ScreenUpdating = False
X = MsgBox("Se Borrarán todos los movimientos de la base de datos, DESEA CONTINUAR", vbYesNo + vbQuestion, "Opción")
If X = vbYes Then
Sheets("Movimientos").Select
Range("A3:L3").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range("A3:L65533").Select
Selection.ClearContents
Range("A3").Select
Sheets("Menu").Select
X = MsgBox("Los Movimientos Fueron Borrados, Seleccione Otro MES Para Su Captura", vbOKOnly, "Mensaje")
Else
Sheets("Menu").Select
Exit Sub
End If
Application.ScreenUpdating = True
End Sub

jairga
Moderador
Moderador

Masculino Cantidad de envíos : 163
Edad : 40
Ciudad - Pais : Cartagena-Barranquilla(Colombia)
Version de Excel : XP-2003-2007
Fecha de inscripción : 11/03/2008

Volver arriba Ir abajo

Re: Ayuda con este Codigo

Mensaje por Invitado el Jue Mar 05, 2009 7:22 pm

gracias de nueva cuenta jairga

voy a modificar el codigo como me indicas, dejame y lo checo

Invitado
Invitado


Volver arriba Ir abajo

Re: Ayuda con este Codigo

Mensaje por Invitado el Jue Mar 05, 2009 7:33 pm

Modifique el codigo pero me marca Error de Compilacion y me señala
Else sin If

Alguna Opciòn.

Invitado
Invitado


Volver arriba Ir abajo

Re: Ayuda con este Codigo

Mensaje por jairga el Jue Mar 05, 2009 7:46 pm

Selecciona el codigo que te pase una vez seleccionado le das boton derecho del mause y le das copiar, abres tu libro de excel abres el editor de Visual basic insertas un modulo standar y pegas el codigo sabes hacerlo?, y borra tu codigo y vuelve a probar si no te sale volvemos y lo intentamos. pero sera ya cuando llegue a la casa

saludos

jairga
Moderador
Moderador

Masculino Cantidad de envíos : 163
Edad : 40
Ciudad - Pais : Cartagena-Barranquilla(Colombia)
Version de Excel : XP-2003-2007
Fecha de inscripción : 11/03/2008

Volver arriba Ir abajo

Re: Ayuda con este Codigo

Mensaje por P@li el Jue Mar 05, 2009 8:55 pm

hola a ambos,

Solamente quería corregir una línea, que me parece Jairga no vio.
Código:

Sub Borrar_Base()
Application.ScreenUpdating = False
X = MsgBox("Se Borrarán todos los movimientos de la base de datos, DESEA CONTINUAR", vbYesNo + vbQuestion, "Opción")
If X = vbYes Then
Sheets("Movimientos").Select
Range("A3:L3").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range("A3:L65533").Select
Selection.ClearContents
Range("A3").Select
Sheets("Menu").Select
X = MsgBox("Los Movimientos Fueron Borrados, Seleccione Otro MES Para Su Captura", vbOKOnly, "Mensaje")
Else
Sheets("Menu").Select
End If
Application.ScreenUpdating = True
End Sub

Lo único que hice fue borrar el Exit Sub, porque en el caso de no querer borrar los movimientos el Application.ScreenUpdating = False no se iba a revertir, creo que eso provocaría que se congelara la imagen de excel y para el usuario sería un verdadero caos, se los aseguro. Honestamente no lo probé, pero estoy un 90% seguro de que así es.

Saludos,

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Ayuda con este Codigo

Mensaje por Invitado el Jue Mar 05, 2009 9:06 pm

gracias a jairga y a p@li por sus aportaciones y conocimientos, les digo que ya funcionò, y correctamente, es justo lo que queria, nuevamente les agradesco su ayuda compañeros y saludos.

digamos que este tema queda cerrado...

Invitado
Invitado


Volver arriba Ir abajo

Re: Ayuda con este Codigo

Mensaje por jairga el Jue Mar 05, 2009 11:03 pm

P@li tus sabios concejos siempre son bien recibidos

Saludos

jairga
Moderador
Moderador

Masculino Cantidad de envíos : 163
Edad : 40
Ciudad - Pais : Cartagena-Barranquilla(Colombia)
Version de Excel : XP-2003-2007
Fecha de inscripción : 11/03/2008

Volver arriba Ir abajo

Re: Ayuda con este Codigo

Mensaje por P@li el Jue Mar 05, 2009 11:17 pm

jaja!! te parece tanto?
Vos sabés que probé el código y de ambas formas funciona igual, no sé si será porque en mi excel el Application.ScreenUpdating = False no tiene efecto.
Igual, se me ocurre, que lo mejor sería ponerlo así:

Código:

Sub Borrar_Base()
X = MsgBox("Se Borrarán todos los movimientos de la base de datos, DESEA CONTINUAR", vbYesNo + vbQuestion, "Opción")

If X = vbYes Then
Application.ScreenUpdating = False
Sheets("Movimientos").Select
Range("A3:L3").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range("A3:L65533").Select
Selection.ClearContents
Range("A3").Select
Sheets("Menu").Select
Application.ScreenUpdating = True
X = MsgBox("Los Movimientos Fueron Borrados, Seleccione Otro MES Para Su Captura", vbOKOnly, "Mensaje")
Else
Sheets("Menu").Select
End If

End Sub

Me parece que estás líneas también estarían de más:
Else
Sheets("Menu").Select
Ya que si el código parte de la hoja Menu seleccionada, no haría falta volver a activarla, sería una redundancia.

Gracias por el comentario Jairga.
Saludos.

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Ayuda con este Codigo

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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