Excel - Problema con "Range"

 
Vista:

Problema con "Range"

Publicado por José Angel Rodríguez (3 intervenciones) el 05/04/2014 01:25:23
He probado todas las soluciones de esta página y siempre sigo obteniendo el error 1004.

Voy a explicar con cuidado lo que quiero hacer, sin poner código, a ver si en primer lugar es factible y segundo, solicitar orientación sobre como hacerlo.

Tengo dos hojas en el mismo libro.

La primera hoja, denominada "Datos", consiste en un grupo de datos, consistentes en una decripción (Columna "B"), un precio (Columna "C") y una fecha (Columna "D")

En la segunda hoja, llamémosla "Prueba", he creado un ComboBox (como control activex), cuyo contenido ya ha sido precargado con las descripciones que aparecen en la hoja "Datos", columna "B".

Lo que deseo hacer es que cuando el usuario elija un valor del ComboBox, la rutina vaya a la hoja "Datos", ubique el precio que corresponda a la descripción seleccionada en el ComboBox, y traiga dicho valor a la hoja "Prueba" y lo ponga en, digamos la celda K8.

Para mayor claridad lo pongo así:

supongamos que en la hoja "Datos" tengo:

COLUMNA A: COLUMNA B: COLUMNA C: COLUMNA D:
==================================================================================
1 Artículo 1 1,678.50 02/04/2014
2 Artículo 2 1,353.80 02/04/2014
3 Artículo 3 1,921.30 02/04/2014
4 Artículo 4 1,274.10 02/04/2014
5 Artículo 5 1,195.60 02/04/2014
6 Artículo 6 1,369.70 02/04/2014
7 Artículo 7 1,454.30 02/04/2014
8 Artículo 8 1,713.00 02/04/2014


En la Hoja "Prueba" está el ComboBox ya percargado en sus propiedades con "Artículo 1", "Artículo 2" y así sucesivamente hasta "Artículo 8"

Lo que deseo es que el usuario, al seleccionar del ComboBox, por ejemplo "Artículo 6", la macro se vaya a "Datos", ubique la selección del usuario, y se traiga de allí el precio y lo coloque en la celda K8 de la hoja "Prueba".

Mucho sabré agradecer su apoyo en el particular

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

Problema con "Range"

Publicado por JuanC (1237 intervenciones) el 05/04/2014 13:05:07
podrías publicar el libro?

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con "Range"

Publicado por lh (6 intervenciones) el 05/04/2014 17:46:13
Revisa la ayuda delas funciones indice (index) y BuscarV
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mario Alberto

Problema con "Range"

Publicado por Mario Alberto (11 intervenciones) el 06/04/2014 17:59:02
imagino que por alguna razón no has usado un BuscarV, era lo mas simple.

Si tienes un comboBox activeX entonces vamos hacer 2 cosas

1) Vamos al entorno de programación e inserta un modulo. en ese modulo pega este código:

Sub BuscaDato()

Sheets("Datos").Select

Dim fila As Double
'fila donde empieza a buscar
fila = 2

Do While Cells(fila, 2).Value <> Empty
'cells pide fila y columma, 2 es la columna B

If Cells(fila, 2).Value = Val(Sheets("Prueba").ComboBox1.Value) Then
Sheets("Prueba").Range("K8") = Cells(fila, 3).Value
'cells pide fila y columma, 3 es la columna C
End If
fila = fila + 1
Loop

Sheets("Prueba").Select

End Sub



2) Ahora , y finalmente ve a la hoja donde esta tu ComboBox y cambia a Modo Diseño el control. Haz doble Click sobre el. Se abrirá el entorno de programación y un evento del control, el ComboBox1_Change() dentro de este evento has un llamado al proceso en tu modulo. Con eso seria todo.

Private Sub ComboBox1_Change()

Call BuscaDato

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con "Range"

Publicado por José Angel Rodríguez (3 intervenciones) el 08/04/2014 23:04:46
Ante todo, muy agradecido por las prontas respuestas y el interés mostrado, y mis disculpas por mi propia demora en volver.

Claro que pensé en buscarv(), de hecho, así es como está actualmente. La intención de buscar una solución alternativa es que ya en otras macros que tengo en el libro, cada vez que intento usar range.select o range activate se produce el mismo error, y ya este fue el tope de mi paciencia.

De hecho, en tu solución propuesta, el sub se estrella con el mismo error 1004 en la instrucción:

Sheets("Prueba").Range("K8") = Cells(fila, 3).Value

Saludos

José Angel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mario Alberto

Problema con "Range"

Publicado por Mario Alberto (11 intervenciones) el 10/04/2014 06:28:19
Hola José, buenas noches.

En el comentario adjunté un excel. es raro porque aquí lo ejecuto sin que me de error. Tu mencionas en tu respuesta : ".....cada vez que intento usar range.select o range activate se produce el mismo error", entonces en el ejemplo propuesto yo no llamo a range .Select, tan solo en Range.

Sheets("Prueba").Range("K8") = Cells(fila, 3).Value

¿El dato que vas a copiar/pegar esta filtrado? porque encontré esto en google por lo que se podría estar dando ese error.

http://support.microsoft.com/kb/905164/es
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar