problemas con la funcion ShowDataForm, me marca error

07/03/2006 - 06:54 por Isaac Garcia Lopez | Informe spam
Hola Amigos:
en el rango c5:g8 tengo una tabla de datos, que se dieron de alta con
anterioridad, pero si yo quiero corregir algun dato de esta tabla lo hago
con Datos | Formulario corre bien cuando lo hago fuera de la macro, pero
al correr la setencia de abajo me marca un error que dice "se ha producido
el error 1004 en tiempo de ejecución: error en el metodo ShowDataForm de
la clase Worksheet, alguien me puede ayudar a correr el Formulario desde una
macro, saludos y gracias de nuevo


Range("C5:G8").Select
ActiveSheet.ShowDataForm
Range("D12").Select
End Sub
 

Leer las respuestas

#1 Héctor Miguel
07/03/2006 - 07:39 | Informe spam
hola, Isaac !

en el rango c5:g8 tengo una tabla de datos, que se dieron de alta con anterioridad
pero si yo quiero corregir algun dato de esta tabla lo hago con Datos | Formulario corre bien cuando lo hago fuera de la macro
pero al correr la setencia de abajo me marca un error que dice "se ha producido el error 1004 en tiempo de ejecucion:
error en el metodo ShowDataForm de la clase Worksheet
alguien me puede ayudar a correr el Formulario desde una macro...
Range("C5:G8").Select
ActiveSheet.ShowDataForm
Range("D12").Select
End Sub



-> cuando 'pretendes' mostrar el formulario de una hoja [datos / formulario...] ->por codigo<-...
excel 'trata' de encontrar un nombre de rango que haga referencia a la 'base de datos'...
o [si no lo encuentra]... 'busca' en la hoja ->DENTROdel rango 'A1:B2'<-

las 'alternativa' [que veo] para que 'funcione SIN errores' el formulario de datos por codigo, son...
o... MOVER la base de datos para que inicie en 'A1'
o... usar un objeto 'commandbar' [simulando la ejecucion de: -menu- datos / formulario...]
[obviamente, la hoja 'activa' DEBE ser la 'correcta Y la celda 'activa' estar dentro de la base de datos]

1.- si te 'decides' por mover la base de datos a 'A1'...
podrias 'presentar' el formulario ->de cualquier hoja<- [si existe] DESDE cualquiera otra como 'activa' [p.e.]
si estas en hoja2 y quieres mostrar el formulario de hoja1...
Worksheets("Hoja1").ShowDataForm

2.- si 'prefieres/necesitas' DEJAR la base de datos 'donde esta'... ['tendras que']...
-> activar la hoja Y una celda 'apropiadas' y...
-> ejecutar el comando [datos / formulario...] ->por codigo<- +/- como sigue...
Worksheets("Hoja1").Select
Range("c5").Select
Application.CommandBars.FindControl(Id:†0).Execute

encontraras la explicacion de este 'comportamiento' en la siguiente pagina...
http://support.microsoft.com/defaul...es;e110462
El metodo ShowDataForm provoca un fallo si no se encuentran datos
[traduccion automatica al castellano]

saludos,
hector.

Preguntas similares