Actualización.

21/11/2004 - 12:21 por José Miguel | Informe spam
Hola Amigos.
Estoy haciendo un archivo de Excel que me sirva para
facturar. En ella hay un cuadro combinado que me recoge
los datos del cliente de una base de datos de Access. Los
resultados se guerdan en una hoja oculta del mismo archivo.
La pregunta es la siguiente. Como veis por el código que
mando, desde el archivo 34VinIn hago que se abra el
archivo 105VinIn, me copie los datos de ese archivo, lo
pegue en el nuevo y cierre el archivo 1º. Y lo hace todo
bien, solo que no se actualiza desde la base de datos.
Si abro el archivo 105VinIn directamente, los datos se
actualizan perfectamente bien.
¿Que me falta en el código?. Gracias y un saludo.

Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)

If Range("B56") <> "" Then

Range("B20:L55").Select
Selection.Copy

MsgBox "Como te has quedado sin líneas para poder
seguir facturando, se va a proceder a insertar una nueva
hoja para que puedas continuar.", vbInformation +
vbOKOnly, "información ..."


Application.Workbooks.Open ("C:\Ofg\105VinIn.xls")
ActiveSheet.Range("B20").Select
ActiveSheet.Paste
ActiveSheet.Range("B56").Select
Application.DisplayAlerts = False
Workbooks("34VinIn.xls").Close (False)

End If
End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/11/2004 - 06:19 | Informe spam
hola, José Miguel !

... archivo de Excel ... para facturar ... un cuadro combinado ... recoge los datos del cliente ... de Access [...]
... desde ... 34VinIn hago que se abra ... 105VinIn ... copie los datos de ese archivo, lo pegue en el nuevo y cierre el archivo
1º.
... lo hace todo bien, solo que no se actualiza desde la base de datos.
... si abro ... 105VinIn directamente, los datos se actualizan perfectamente. ¿Que me falta en el codigo? [...]



[en 'via de mientras']... si analizas [mas detenidamente] 'lo que hace' el codigo que expones, +/- es lo siguiente...
=> en la hoja y libro que contiene el modulo de codigo [supongo que se trata del libro '34VinIn.xls']...
1° cada que el usuario 'cambia' el rango seleccionado 'hace un monitoreo' y... si la celda 'b56' esta 'ocupada'...
2° selecciona 'SU' rango 'b20:l55' [misma hoja] y 'hace un copy'...
3° presenta un mensaje 'avisando' que 'va a insertar' una hoja nueva, 'pero'...
-> esta accion [insertar la hoja nueva]... NO la esta 'llevando a cabo' <-
4° abre el libro 'C:\Ofg\105VinIn.xls' =>SIN 'verificar' si -por casualidad- ya esta abierto en la sesion< =>desde este momento, el codigo 'esta afectando la hoja 'activa' en el libro 'recien abierto' [C:\Ofg\105VinIn.xls]<5° selecciona la celda 'b20'...
6° 'hace un pegado' [del contenido del portapapeles] =>OJO que esta 'reemplazando' lo que pudiera haber ahi<7° selecciona la celda 'b56'...
8° 'suprime' la presentacion de las alertas del sistema y...
9° cierra el libro '34VinIn.xls' [desde el que se inicio a ejecutar el codigo] SIN guardar cambios
me parece que falta que menciones 'como' [o donde] es que se rescatan los datos de cliente de la bd en access [?]

¿comentas datos adicionales?
saludos,
hector.

p.d. dicho sea... 'de paso'...
¿estas usando excel de office '97? [al menos, 'parece' que el codigo fue 'generado' en esa version]
Respuesta Responder a este mensaje
#2 José Miguel
22/11/2004 - 12:27 | Informe spam
Hola Hector Miguel. Lo primero las gracias por contestar y
lo segundo que como puedes apreciar, soy un novato con el
código, pero bueno, cada día lo haremos mejor.
Los datos pasan a la hoja denominada clientes, que a su
vez está la hoja2 y esta hoja esta oculta.
A esta hoja pasan los datos desde una base de datos de
Access y esta realizada desde "datos" --> "Obtener datos
externos" --> "Crear nueva consulta" y luego en las
propiedades de la consulta, esta elegido que se actualice
la consulta cuando se abre el archivo.

Y sí, creo que el código lo empece a desarrollar desde
Ecel 97, aunque el archivo final, se ejecutará desde Excel
2000.

Y para darte una idea de lo que pretendo hacer es una
factura de una hoja, que cuando se va a la última celda,
me copie todos los datos y me lo puegue en otro archivo
para poder seguir continuando la introducción de datos.
Este otro archivo que abre ya esta "maquetado" para que
los cálculos salgan bién. Concretando de una hoja de
factura pasa a otra que tiene 2 hojas.
Perdón por el rollo y un saludo.-
hola, José Miguel !

... archivo de Excel ... para facturar ... un cuadro




combinado ... recoge los datos del cliente ... de Access
[...]
... desde ... 34VinIn hago que se abra ... 105VinIn ...




copie los datos de ese archivo, lo pegue en el nuevo y
cierre el archivo
1º.
... lo hace todo bien, solo que no se actualiza desde




la base de datos.
... si abro ... 105VinIn directamente, los datos se




actualizan perfectamente. ¿Que me falta en el codigo? [...]

[en 'via de mientras']... si analizas [mas


detenidamente] 'lo que hace' el codigo que expones, +/- es
lo siguiente...
=> en la hoja y libro que contiene el modulo de codigo


[supongo que se trata del libro '34VinIn.xls']...
1° cada que el usuario 'cambia' el rango


seleccionado 'hace un monitoreo' y... si la celda 'b56'
esta 'ocupada'...
2° selecciona 'SU' rango 'b20:l55' [misma hoja] y 'hace


un copy'...
3° presenta un mensaje 'avisando' que 'va a insertar' una


hoja nueva, 'pero'...
-> esta accion [insertar la hoja nueva]... NO la


esta 'llevando a cabo' <-
4° abre el libro 'C:\Ofg\105VinIn.xls' =>SIN 'verificar'


si -por casualidad- ya esta abierto en la sesion<> =>desde este momento, el codigo 'esta afectando la
hoja 'activa' en el libro 'recien abierto'
[C:\Ofg\105VinIn.xls]<>5° selecciona la celda 'b20'...
6° 'hace un pegado' [del contenido del portapapeles]


=>OJO que esta 'reemplazando' lo que pudiera haber ahi<>7° selecciona la celda 'b56'...
8° 'suprime' la presentacion de las alertas del sistema


y...
9° cierra el libro '34VinIn.xls' [desde el que se inicio


a ejecutar el codigo] SIN guardar cambios
me parece que falta que menciones 'como' [o donde] es que


se rescatan los datos de cliente de la bd en access [?]

¿comentas datos adicionales?
saludos,
hector.

p.d. dicho sea... 'de paso'...
¿estas usando excel de office '97? [al


menos, 'parece' que el codigo fue 'generado' en esa
version]


.

Respuesta Responder a este mensaje
#3 Héctor Miguel
23/11/2004 - 08:24 | Informe spam
hola, José Miguel !

[creo que todavia] hay cosas/datos/detalles que se estan 'quedando en el tintero'
ya no se si el problema es el 'no refresco' de los datos externos, o... 'algo mas' :))

[si lo prefieres] enviame [una copia de] tu archivo con [al menos] los datos 'importantes'
y [obviamente] algunas instrucciones de lo que esperas obtener [y lo que haces y obtienes ahora]
a la direccion de correo de respuesta, quitale las mayusculas [NO...SPAM...PLS]

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida