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

#1 Héctor Miguel
24/02/2009 - 23:08 | Informe spam
hola, Jorge !

1) (re)creando un modelo de trabajo +/- "igual al tuyo" (o tratando de hacerlo)
me resulta con las siguientes caracteristicas:

a) 3 hojas ("cotizacion", "tablas_generales" y "tablas_calculo")
b) en la hoja "cotizacion" tienes incrustados los siguientes controles ("cuadro de controles - ActiveX")
- 3 comboboxes (cmbclasevehiculo, cmbservicio, cmbtomaasistencia)
- 3 checkboxes (chbmapfre, chbgenerali, chbsolidaria)
- 1 commandbutton (btncotizar)
c) ninguno de estos tiene una "LinkedCell" (o sea, lo que el usuario seleccione se queda "en el limbo")
d) 3 celdas para rescatar un determinado valor segun la combinacion de los controles anterioes (i6, i8 e i9)

2) lo unico que no me "cuadro" en la exposicion que haces es el "llenado" del combo "cmbclasevehiculo"
ya que usas un nombre diferente en el evento del control y la rutina que llamas para llenarlo -???-
y que (mencionas) tienes "otros combos" (en otros lados que hacen otras cosas ?)
asi que el modelo lo (re)construi SOLO con los datos "aplicables" a los controles anteriores

prueba con los siguientes procedimientos EN el modulo de codigo de la hoja "cotizaciones"
OJO por si existe palabras "acentuadas" o con caracteres "poco usuales" -???-
y si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Private Sub cmbclasevehiculo_DropButtonClick()
Actualiza cmbclasevehiculo, "g"
End Sub
Private Sub cmbservicio_DropButtonClick()
Actualiza cmbservicio, "i"
End Sub
Private Sub cmbtomaasistencia_DropButtonClick()
Actualiza cmbtomaasistencia, "j"
End Sub
Private Sub btncotizar_Click()
Range("i6,i8:i9").ClearContents
If LCase(cmbtomaasistencia) <> "si" Then Range("i6,i8:i9") = 0: Exit Sub
If chbmapfre Then Cotiza "i6", "mapfre"
If chbgenerali Then Cotiza "i8", "generali"
If chbsolidaria Then Cotiza "i9", "solidaria"
End Sub
Private Sub Actualiza(Control As MSForms.ComboBox, Col As String)
With Worksheets("tablas_generales")
Control.ListFillRange = _
.Name & "!" & .Range(.Range(Col & 2), .Range(Col & 2).End(xlDown)).Address
End With
End Sub
Private Sub Cotiza(Celda As String, Cia As String)
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).Address & ")")
End With
End With
End Sub

OJO: de tu codigo original expuesto en la consulta a la que estoy contestando...
esta parte del codigo no hace referencia al mismo nombre del control ==cmbClaseVehiculo_DropButtonClick "versus"
cmbCotizadorClaseVehiculo.ListFillRange -?????-

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.
Respuesta Responder a este mensaje
#2 Jorge Forero
22/03/2009 - 19:59 | Informe spam
Hola hector..

muchas gracias funciona perfecto..

pero ahora necesito hacer lo mismo para las celdas j6, j8 y j10, en el mismo
botón y la selección la debe hacer con los mismos chekbox y los mismos
combobox.. pero ahora es para otra variable de cálculo así:

tengo el combobox cmbCotizadorAP si está en NO, j6, j8 y j10 = 0
si está en SI, debe calcular de acuerdo a las siguientes columnas:

en la hoja "tablas calculo"
fila G Companias
fila H Clase de Vehiculo
Fila I Servicio
Fila J el valor que me debe colocar en j6, j8 y j10 respectivamente

es decir al dar click en el btncotizar, debe llenar las celdas i6 i8 i10 y
la j6, j8 y j10

respectivamente.

gracias por tu colaboraciòn

Jorge Forero


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

1) (re)creando un modelo de trabajo +/- "igual al tuyo" (o tratando de
hacerlo)
me resulta con las siguientes caracteristicas:

a) 3 hojas ("cotizacion", "tablas_generales" y "tablas_calculo")
b) en la hoja "cotizacion" tienes incrustados los siguientes controles
("cuadro de controles - ActiveX")aa


- 3 comboboxes (cmbclasevehiculo, cmbservicio, cmbtomaasistencia)
- 3 checkboxes (chbmapfre, chbgenerali, chbsolidaria)
- 1 commandbutton (btncotizar)
c) ninguno de estos tiene una "LinkedCell" (o sea, lo que el usuario
seleccione se queda "en el limbo")
d) 3 celdas para rescatar un determinado valor segun la combinacion de
los controles anterioes (i6, i8 e i9)

2) lo unico que no me "cuadro" en la exposicion que haces es el "llenado"
del combo "cmbclasevehiculo"
ya que usas un nombre diferente en el evento del control y la rutina
que llamas para llenarlo -???-
y que (mencionas) tienes "otros combos" (en otros lados que hacen otras
cosas ?)
asi que el modelo lo (re)construi SOLO con los datos "aplicables" a los
controles anteriores

prueba con los siguientes procedimientos EN el modulo de codigo de la hoja
"cotizaciones"
OJO por si existe palabras "acentuadas" o con caracteres "poco
ales" -???-
y si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Private Sub cmbclasevehiculo_DropButtonClick()
Actualiza cmbclasevehiculo, "g"
End Sub
Private Sub cmbservicio_DropButtonClick()
Actualiza cmbservicio, "i"
End Sub
Private Sub cmbtomaasistencia_DropButtonClick()
Actualiza cmbtomaasistencia, "j"
End Sub
Private Sub btncotizar_Click()
Range("i6,i8:i9").ClearContents
If LCase(cmbtomaasistencia) <> "si" Then Range("i6,i8:i9") = 0: Exit Sub
If chbmapfre Then Cotiza "i6", "mapfre"
If chbgenerali Then Cotiza "i8", "generali"
If chbsolidaria Then Cotiza "i9", "solidaria"
End Sub
Private Sub Actualiza(Control As MSForms.ComboBox, Col As String)
With Worksheets("tablas_generales")
Control.ListFillRange = _
.Name & "!" & .Range(.Range(Col & 2), .Range(Col &
2).End(xlDown)).Address
End With
End Sub
Private Sub Cotiza(Celda As String, Cia As String)
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).Address & ")")
End With
End With
End Sub

OJO: de tu codigo original expuesto en la consulta a la que estoy
contestando...
esta parte del codigo no hace referencia al mismo nombre del control
==> cmbClaseVehiculo_DropButtonClick "versus"
cmbCotizadorClaseVehiculo.ListFillRange -?????-

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.




Respuesta Responder a este mensaje
#3 Héctor Miguel
23/03/2009 - 03:48 | Informe spam
hola, Jorge !

- antes eran las filas 6, 8 y 9 y ahora las filas 6, 8 y 10 -???-

- cuales son las diferencias entre las columnas B,C,D y F en relacion con las columnas G,H,I y J -???-
antes la hoja "tablas_calculo" tenia en las columnas B,C,D,F (companias, clase, servicio, valor)
ahora comentas que las columnas (y la misma hoja) G,H,I y J tienen los mismos titulos -???-
(te recuerdo que no me fue posible (re)construir un modelo completo (y exactamente) "igual al tuyo") -?-

(creo que hay bastantes detalles "aun en el tintero")
saludos,
hector.

__ OP __
... ahora necesito hacer lo mismo para las celdas j6, j8 y j10, en el mismo boton
y la seleccion la debe hacer con los mismos chekbox y los mismos combobox
pero ahora es para otra variable de calculo asi:
tengo el combobox cmbCotizadorAP si esta en NO, j6, j8 y j10 = 0
si esta en SI, debe calcular de acuerdo a las siguientes columnas:
en la hoja "tablas calculo"
fila G Companias
fila H Clase de Vehiculo
Fila I Servicio
Fila J el valor que me debe colocar en j6, j8 y j10 respectivamente
es decir al dar click en el btncotizar, debe llenar las celdas i6 i8 i10 y la j6, j8 y j10 ...



__ previos __
1) (re)creando un modelo de trabajo +/- "igual al tuyo" (o tratando de hacerlo)
me resulta con las siguientes caracteristicas:

a) 3 hojas ("cotizacion", "tablas_generales" y "tablas_calculo")
b) en la hoja "cotizacion" tienes incrustados los siguientes controles ("cuadro de controles - ActiveX")


- 3 comboboxes (cmbclasevehiculo, cmbservicio, cmbtomaasistencia)
- 3 checkboxes (chbmapfre, chbgenerali, chbsolidaria)
- 1 commandbutton (btncotizar)
c) ninguno de estos tiene una "LinkedCell" (o sea, lo que el usuario seleccione se queda "en el limbo")
d) 3 celdas para rescatar un determinado valor segun la combinacion de los controles anterioes (i6, i8 e i9)

2) lo unico que no me "cuadro" en la exposicion que haces es el "llenado" del combo "cmbclasevehiculo"
ya que usas un nombre diferente en el evento del control y la rutina que llamas para llenarlo -???-
y que (mencionas) tienes "otros combos" (en otros lados que hacen otras cosas ?)
asi que el modelo lo (re)construi SOLO con los datos "aplicables" a los controles anteriores

prueba con los siguientes procedimientos EN el modulo de codigo de la hoja "cotizaciones"
OJO por si existen palabras "acentuadas" o con caracteres "poco generales" -???- ...

Private Sub cmbclasevehiculo_DropButtonClick()
Actualiza cmbclasevehiculo, "g"
End Sub
Private Sub cmbservicio_DropButtonClick()
Actualiza cmbservicio, "i"
End Sub
Private Sub cmbtomaasistencia_DropButtonClick()
Actualiza cmbtomaasistencia, "j"
End Sub
Private Sub btncotizar_Click()
Range("i6,i8:i9").ClearContents
If LCase(cmbtomaasistencia) <> "si" Then Range("i6,i8:i9") = 0: Exit Sub
If chbmapfre Then Cotiza "i6", "mapfre"
If chbgenerali Then Cotiza "i8", "generali"
If chbsolidaria Then Cotiza "i9", "solidaria"
End Sub
Private Sub Actualiza(Control As MSForms.ComboBox, Col As String)
With Worksheets("tablas_generales")
Control.ListFillRange = _
.Name & "!" & .Range(.Range(Col & 2), .Range(Col & 2).End(xlDown)).Address
End With
End Sub
Private Sub Cotiza(Celda As String, Cia As String)
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).Address & ")")
End With
End With
End Sub
Respuesta Responder a este mensaje
#4 Jorge Forero
23/03/2009 - 06:26 | Informe spam
Hola Hector..
-. en el modelo que me recreaste está todo bien y el valor de la Asistencia
(del cmb cmbtomaasistencia) está funcionando perfecto..

revise la consulta inicial y las filas son 6, 8, y 10.. en el código cambié
i9 por i10 y funciona bien

-. la diferencia es que en la primera exposición que hice existía la
cobertura de asistencia y ahora me piden que le adicione otra cobertura
llamada accidentes personales..
entonces para las columnas B,C,D y F tienen los datos de asistencia y en
G,H,I y J, los datos de accidentes..

ahora bien, (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

saludos y gracias

Jorge


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

- antes eran las filas 6, 8 y 9 y ahora las filas 6, 8 y 10 -???-

- cuales son las diferencias entre las columnas B,C,D y F en relacion con
las columnas G,H,I y J -???-
antes la hoja "tablas_calculo" tenia en las columnas B,C,D,F (companias,
clase, servicio, valor)
ahora comentas que las columnas (y la misma hoja) G,H,I y J tienen los
mismos titulos -???-
(te recuerdo que no me fue posible (re)construir un modelo completo (y
exactamente) "igual al tuyo") -?-

(creo que hay bastantes detalles "aun en el tintero")
saludos,
hector.

__ OP __
... ahora necesito hacer lo mismo para las celdas j6, j8 y j10, en el
mismo boton
y la seleccion la debe hacer con los mismos chekbox y los mismos combobox
pero ahora es para otra variable de calculo asi:
tengo el combobox cmbCotizadorAP si esta en NO, j6, j8 y j10 = 0
si esta en SI, debe calcular de acuerdo a las siguientes columnas:
en la hoja "tablas calculo"
fila G Companias
fila H Clase de Vehiculo
Fila I Servicio
Fila J el valor que me debe colocar en j6, j8 y j10 respectivamente
es decir al dar click en el btncotizar, debe llenar las celdas i6 i8 i10
y la j6, j8 y j10 ...



__ previos __
1) (re)creando un modelo de trabajo +/- "igual al tuyo" (o tratando de
hacerlo)
me resulta con las siguientes caracteristicas:

a) 3 hojas ("cotizacion", "tablas_generales" y "tablas_calculo")
b) en la hoja "cotizacion" tienes incrustados los siguientes
controles ("cuadro de controles - ActiveX")


- 3 comboboxes (cmbclasevehiculo, cmbservicio, cmbtomaasistencia)
- 3 checkboxes (chbmapfre, chbgenerali, chbsolidaria)
- 1 commandbutton (btncotizar)
c) ninguno de estos tiene una "LinkedCell" (o sea, lo que el usuario
seleccione se queda "en el limbo")
d) 3 celdas para rescatar un determinado valor segun la combinacion
de los controles anterioes (i6, i8 e i9)

2) lo unico que no me "cuadro" en la exposicion que haces es el
"llenado" del combo "cmbclasevehiculo"
ya que usas un nombre diferente en el evento del control y la rutina
que llamas para llenarlo -???-
y que (mencionas) tienes "otros combos" (en otros lados que hacen
otras cosas ?)
asi que el modelo lo (re)construi SOLO con los datos "aplicables" a
los controles anteriores

prueba con los siguientes procedimientos EN el modulo de codigo de la
hoja "cotizaciones"
OJO por si existen palabras "acentuadas" o con caracteres "poco
generales" -???- ...

Private Sub cmbclasevehiculo_DropButtonClick()
Actualiza cmbclasevehiculo, "g"
End Sub
Private Sub cmbservicio_DropButtonClick()
Actualiza cmbservicio, "i"
End Sub
Private Sub cmbtomaasistencia_DropButtonClick()
Actualiza cmbtomaasistencia, "j"
End Sub
Private Sub btncotizar_Click()
Range("i6,i8:i9").ClearContents
If LCase(cmbtomaasistencia) <> "si" Then Range("i6,i8:i9") = 0: Exit
Sub
If chbmapfre Then Cotiza "i6", "mapfre"
If chbgenerali Then Cotiza "i8", "generali"
If chbsolidaria Then Cotiza "i9", "solidaria"
End Sub
Private Sub Actualiza(Control As MSForms.ComboBox, Col As String)
With Worksheets("tablas_generales")
Control.ListFillRange = _
.Name & "!" & .Range(.Range(Col & 2), .Range(Col &
2).End(xlDown)).Address
End With
End Sub
Private Sub Cotiza(Celda As String, Cia As String)
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).Address & ")")
End With
End With
End Sub






Respuesta Responder a este mensaje
#5 Héctor Miguel
23/03/2009 - 07:15 | Informe spam
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 ...
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida