Extraer información de otro Libro

09/10/2006 - 15:09 por Roberto Miranda | Informe spam
Buenas Grupo:

He buscado información sobre extaer información de otro libro, pero no he
podido hacer mucho, yo hice lo siguiente:

En una hoja del libro destino, le hice un Extraer Datos Externos mandando a
llamar otro archivo Xls, y me actualiza una base de datos, luego de ahí
puedo manipular vía código la información, el caso es que el archivo destino
se hace demasiado grande.

intenté mandando a poner fórmulas a través de código la función BuscarV,
pero esta no me permite hacer una validación en el código, lo tengo que
poner vía código puesto que esta información puede modificarse, y la fórmula
se tiene que eliminar.

El objetivo es el siguiente: tengo 2 archivos, uno donde se elaboran cheques
y el otro donde están las solicitudes, desde el archivo donde elaboro los
cheques mando a llamar todos los datos de la solicitud, pero tengo que tener
la opción de agregar o quitar información (Detallitos hasta de escritura),
pero no se como hacerlo, los datos más importantes que necesito pasar al
libro de elaboración de cheques son: Beneficiario, valor a pagar, concepto,
pero a como dije antes tengo que poder modificar la información. y la
validación importante que debo hacer, es que en una columna muestro el
estado de la solicitud, si esta dice anulada, no debería poder elaborarse
cheque. Muestro un código que he hecho, pero válido para una hoja dentro del
mismo libro:

Private Sub CommandButton1_Click()
Dim Celda
Dim Solicitud
Dim CldNeto
Dim CldTasaIr
Dim CldIr
Dim CldBeneficiario
Dim CldConcepto
Dim CldEstado
Celda = 3
Solicitud = "A" & Celda
Do Until TextBox4.Text = Hoja7.Range(Solicitud)
Celda = Celda + 1
If Celda = 6000 Then
MsgBox "Solicitud no existe, intente nuevamente", vbOKOnly,
"Roberto Miranda"
TextBox4.Activate
Exit Sub
End If
Solicitud = "A" & Celda
Loop
CldBeneficiario = "C" & Celda
CldNeto = "D" & Celda
CldTasaIr = "H" & Celda
CldIr = "I" & Celda
CldConcepto = "J" & Celda
CldEstado = "L" & Celda
If Hoja7.Range(CldEstado) = "Anulado" Then
MsgBox "Solicitud está anulada, no se puede elaborar Cheque", vbOKOnly,
"Roberto Miranda"
Exit Sub
Else
Hoja5.Range("H5") = Hoja7.Range(CldNeto)
ComboBox1.Text = Hoja7.Range(CldBeneficiario)
'Hoja5.Range("A17") = Hoja7.Range(CldConcepto)
Hoja5.Range("G21") = Hoja7.Range(CldTasaIr)
Hoja5.Range("H21") = Hoja7.Range(CldIr)
Hoja5.Range("C23") = Val(TextBox4.Text)
End If

Una manito??

Saludos

Roberto Miranda
 

Leer las respuestas

#1 Héctor Miguel
10/10/2006 - 05:20 | Informe spam
hola, Roberto !

He buscado informacion sobre extaer informacion de otro libro, pero no he podido hacer mucho [...]



1) [creo que] seria necesario hacer una busqueda [un poquitin] mas... 'exhaustiva' -?-
[te aseguro que] existen 'suficientes' conversaciones relacionadas con extraer informacion de otros libros ;)

... hice un Extraer Datos Externos mandando a llamar otro archivo Xls, y me actualiza una base de datos, luego
... puedo manipular via codigo la informacion, el caso es que el archivo destino se hace demasiado grande.
... mandando a poner formulas a traves de codigo la funcion BuscarV... no me permite hacer una validacion en el codigo
... lo tengo que poner via codigo puesto que esta informacion puede modificarse, y la formula se tiene que eliminar.



2) puedes exponer 'como seria' la formula que utilizarias ? y comentar ...
a que te refieres con: -> '... esta informacion puede modificarse, y la formula se tiene que eliminar... ' ?

... 2 archivos, uno donde se elaboran cheques y el otro donde están las solicitudes
desde... cheques mando a llamar... datos de la solicitud, pero tengo que tener la opcion de agregar o quitar informacion
(Detallitos hasta de escritura), pero no se como hacerlo, los datos más importantes que necesito pasar al... de cheques son:
Beneficiario, valor a pagar, concepto, pero a como dije antes tengo que poder modificar la informacion.
y la validacion importante que debo hacer, es que en una columna muestro el estado de la solicitud
si esta dice anulada, no deberia poder elaborarse cheque
... codigo que he hecho, pero valido para una hoja dentro del mismo libro:



3) si es posible tener ambos libros abiertos ? es posible que puedas 'evitar' algunos pasos
o procesar 'en directo' sobre los datos del otro archivo ;)
el ['unico' ?] inconveniente seria que no podras utilizar los 'CodeName' de las hojas en el libro 'externo' [me explico]...
-> tus llamadas del tipo: -> Hoja5.Range("G21") = Hoja7.Range(CldTasaIr)
donde 'Hoja5' y 'Hoja7' corresponden a los 'codenames' de los objetos worksheet -> del libro que contiene las macros...
-> necesitarias sustituirlas [donde corresponda] por el nombre del libro y el nombre de la hoja [en su etiqueta]... p.e.
-> Hoja5.Range("G21") = Workbooks("El otro libro.xls").Worksheets("el nombre de la Hoja7").Range(CldTasaIr)
[y algunas 'cosilas' mas] :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
Private Sub CommandButton1_Click()
Dim Celda
Dim Solicitud
Dim CldNeto
Dim CldTasaIr
Dim CldIr
Dim CldBeneficiario
Dim CldConcepto
Dim CldEstado
Celda = 3
Solicitud = "A" & Celda
Do Until TextBox4.Text = Hoja7.Range(Solicitud)
Celda = Celda + 1
If Celda = 6000 Then
MsgBox "Solicitud no existe, intente nuevamente", vbOKOnly, "Roberto Miranda"
TextBox4.Activate
Exit Sub
End If
Solicitud = "A" & Celda
Loop
CldBeneficiario = "C" & Celda
CldNeto = "D" & Celda
CldTasaIr = "H" & Celda
CldIr = "I" & Celda
CldConcepto = "J" & Celda
CldEstado = "L" & Celda
If Hoja7.Range(CldEstado) = "Anulado" Then
MsgBox "Solicitud está anulada, no se puede elaborar Cheque", vbOKOnly, "Roberto Miranda"
Exit Sub
Else
Hoja5.Range("H5") = Hoja7.Range(CldNeto)
ComboBox1.Text = Hoja7.Range(CldBeneficiario)
'Hoja5.Range("A17") = Hoja7.Range(CldConcepto)
Hoja5.Range("G21") = Hoja7.Range(CldTasaIr)
Hoja5.Range("H21") = Hoja7.Range(CldIr)
Hoja5.Range("C23") = Val(TextBox4.Text)
End If

Preguntas similares