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
 

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]

Preguntas similares