busqueda de datos de una hoja a otra

24/02/2009 - 06:33 por Jorge Forero | Informe spam
Buenas noches grupo, tengo la siguiente dificultad

1-. en el libro cotizador tengo una hoja de calculo llamada cotizacion, en
esta hoja se solicitan los datos para poder realizar la cotizacion de un
producto.
En la columna A desde la fila a5 a la a17 estan los titulos de los datos a
capturar ejemplo

a5 nombre cliente
a6 numero de identificacion
a7 direccion
a8 numero de telefono
etc..

en la columna B el usuario debe digitar los datos de acuerdo a lo que se
pregunta enla columna A ejemplo

b5 = jorge
b6 = 12345
b7 = calle 7 no. 10-28 torre 6 apartamento 501
a8 = 5555555
etc..

en la columna C se encuentran los titulos de los datos del producto qaue se
quiere cotizar

c5 = marca del vehiculo
c6 = clase de vehiculo
c7 = modelo o año de fabricacion
c8 = servicio que presta el vehiculo
c9 = Tomara asistencia en viajes
etc..

en la columna D se diligencian los datos a las preguntas/titulos de la
columna C por ejemplo

d5 = dodge
d6 = automovil
d7 = 2005
d8 = particular
d9 = si
etc..

si en d9 el usuario elige no, no se tomara ningun valor

al frente de c6, c8 y c9 estan los siguienes combobox

cmbclasevehiculo
cmbservicio
cmbtomaasistencia

para llenar estos combos tengo una hoja llamada tablas_generales en donde:

la fila1 es para todos los titulos
columna G titulada clases vehiculos desde la fila2 tengo las posibles calses
de vehiculos que podra escoger el usuario y que deben alimentar el combobox
cmbclasevehiculo
columna I titulada servicios desde la fila2 tengo las posibles tipos de
servicio (particular publico etc.. ) que podra escoger el usuario y que
deben alimentar el combobox cmbservicio
columna J titulada asistencia desde la fila2 tengo las dos posibles
respuestas (si no)que podra escoger el usuario y que deben alimentar el
combobox cmbtomaasistencia

los combobox los que desplega el usuario van alimentados por la hoja tablas
generales mediante codigo de vb.

para el problema que requiero resolver tomo en la hoja tablas_generales
desde la columna G ya que las anteriores tienen datos que llenan otros cmb
por ejemplo columna A tengo los puntos de venta, columna B nombre vendedor
etc..

tengo también 3 CheckBox

chbmapfre
chbgenerali
chbsolidaria

en otra hoja llamada tablas_calculo se tiene: (la fila1 corresponde a los
titulos)

Columna B
b1 = Companias
b2 = Mapfre
b3 = Mapfre
b4 = Mapfre
b5 = Generali
b6 = solidaria

Columna C
c1 = Clase Vehiculo
c2 = Automovil
c3 = Camioneta
c4 = Taxi
c5 = Automovil
c6 = Automovil

Columna D
d1 = Servicio
d2 = Particular
d3 = Particular
d4 = Pùblico
d5 = Particular
d6 = Particular

Columna F
f1 = valor
f2 = 48.000 (cuarenta y ocho mil pesos), sin decimales
f3 = 50.000
f4 = 35.000
f5 = 60.000
f6 = 30.000

asi sucesivamente, pueden existir multiples combinaciones

ahora volviendo a la hoja cotizacion en la:

celda f6 tengo la tasa que se va a aplicar ejemplo 4.80% (cuatro punto
ochenta) esta celda esta configurada con la propiedad de porcentaje
celda g6 tengo el recargo y/o descuento que se va a aplicar ejemplo 10.00%
esta celda esta configurada con la propiedad de porcentaje
celda h6 (f6*g6)+f6

si el usuario escogio no en el cmbtomaasistencia, i6, i8, i10 = 0

celda i6 se debe calcular el valor de la asistencia que depende de:
0 (cero) si el chbmapfre no se encuentra marcado
si esta marcado o chequeado,
el calculo del valor correspondiente lo debe realizar dependiendo de los
valores escogidos por el usuario en los combobox (estos valores no los
almaceno, solo el usuario los elige) y buscando en la hoja tablas_calculo de
acuerdo con la combinacion que corresponda.

para la fila 8 se debe hacer lo mismo:
celda i8 se debe calcular el valor de la asistencia que depende de:
0 (cero) si el chbgenerali no se encuentra marcado.

para la fila 10 se debe hacer lo mismo:
celda i10 se debe calcular el valor de la asistencia que depende de:
0 (cero) si el chbsolidaria no se encuentra marcado.

ejemplo:

cmbclasevehiculo = Automovil
cmbservicio = Particular
cmbtomaasistencia = SI

los 3 checkbox estan marcados.

entonces

i6 = 48.000
i8 = 60.000
i10 = 30.000

si el criterio no se encuentra en la hoja tablas_calculo los valores para
i6, i8, i10 =0

la idea es que todo esto lo haga cuando se le da click al boton btncotizar.

Nota: el llenado de los combos lo realizo con el siguiente codigo

Private Sub cmbClaseVehiculo_DropButtonClick()
Call cmbClaseVehiculoCargarTablas
cmbClaseVehiculo.DropDown
End Sub

y en un modulo..

Sub cmbClaseVehiculoCargarTablas()
Application.ScreenUpdating = False
Sheets("Tablas_Generales").Select
ActiveSheet.Range("g2", Range("g2").End(xlDown)).Select
rgo = Selection.Address
Sheets("Cotización").cmbCotizadorClaseVehiculo.ListFillRange =
"Tablas_Generales!" & rgo
Sheets("Cotización").Select
End Sub

y se repite para cada combo.

esapero haber podido explicar lo que necesito realizar


gracias por su colaboracion

jorgef

Preguntas similare

Leer las respuestas

#6 Jorge Forero
23/03/2009 - 17:18 | Informe spam
OK, Hector Miguel, funciona perfecto

muchas gracias

Jorge Forero


"Héctor Miguel" escribió en el mensaje
news:%
hola, Jorge !

con los datos de esta informacion complementaria,
cambia/modifica/sustituye/actualiza/...
los dos procedimientos siguientes (ya van de acuerdo con estos datos)...

Private Sub btncotizar_Click()
Range("i6:j6,i8:j8,i10:j10").ClearContents
If LCase(cmbtomaasistencia) <> "si" Then Range("i6,i8,i10") = 0: GoTo
CheckAP
If chbmapfre Then Cotiza "i6", "mapfre"
If chbgenerali Then Cotiza "i8", "generali"
If chbsolidaria Then Cotiza "i10", "solidaria"
CheckAP:
If LCase(cmbcotizadorap) <> "si" Then Range("j6,j8,j10") = 0: Exit Sub
If chbmapfre Then Cotiza "j6", "mapfre", True
If chbgenerali Then Cotiza "j8", "generali", True
If chbsolidaria Then Cotiza "j10", "solidaria", True
End Sub

Private Sub Cotiza(Celda As String, Cia As String, Optional CobAcc As
Boolean = False)
With Worksheets("tablas_calculo")
With .Range(.Range("b2"), .Range("b2").End(xlDown))
Range(Celda) = Evaluate("sumproduct(--('" & _
.Parent.Name & "'!" & .Address & "=""" & Cia & """),--('" & _
.Parent.Name & "'!" & .Offset(, 1).Address & "=""" &
cmbclasevehiculo & """),--('" & _
.Parent.Name & "'!" & .Offset(, 2).Address & "=""" & cmbservicio &
"""),'" & _
.Parent.Name & "'!" & .Offset(, 4 - CobAcc).Address & ")")
End With
End With
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
-. la diferencia es que en la primera exposicion... existia la cobertura
de asistencia
y ahora me piden que le adicione otra cobertura llamada accidentes
personales..
... B,C,D y F tienen los datos de asistencia y en G,H,I y J, los datos de
accidentes..
... (esto lo hice después de realizar la consulta) comparando las
columnas BCD con GHI
tienen los mismos datos por lo que podría obviar G,H e I
y en la columna G colocar los precios de accidentes personales (la nueva
cobertura)
y tomar las variables de combinación de las columnas BCD
si el usuario elige en el cmbCotizadorAP = NO, los valores para j6, j8 y
j10 = 0
si elige SI debe hacer la misma combinación para la columna I (de la
exposición anterior)
pero colocar el valor de la columna G en las celdas j6, j8 y j10 ...




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida