Uniserv | |
| 2007-09-03 04:41 - Respuestas: 3 - Tema nº: 2465951
Características: Windows XP Profesional, Mem 1 Gb, PIV 3.0, HD 80 SATA, Monitor 740nw.
todo en excel:
tengo un archivo con datos (lista de precios) y varios archivos con recetas, cual es la formula para que en el campo costo, de la receta, tenga el valor (precio) de la lista de precios, sin tener que ir manualmente a buscar.
| |
|
|
ebolo | |
|
Re: Excel - 2007-09-03 18:56 - Respuesta 3
Copiado de otro post abierto
Características: Windows ME, MEM 1 Gb, PIV 3.0, 80 HD Sata.
veamos si con esto se aclara, para ebolo y menimem gracias.
tengo 1 archivo excel llamdo precios con los siguientes datos
archivo precios.xls
Columnas
a b c d
productos presentacion unid/cc/gs precio
articulo 1 100 gs 10,00
articulo 2 1000 cc 8,50
articulo 3 100 gs 7,00
articulo 4 1000 gs 6,00
articulo 5 1000 gs 6,00
articulo 6 1000 gs 6,00
recetas1.xls
productos cantidad precio
articulo 1 10 gs 1,00 en esta celda (precio) debe haber una formula que
articulo 2 100 cc 0,85 busque en precios.xls y si el articulo existe traer el
articulo 4 100 gs 0,60 precio.
Lo que necesito es que en las recetas haya una formula en la celda precio que busque en el archivo lista de precios y si encuentra el articulo, me traiga el precio a dicha celda para calcular el precio de la cantidad consumida en la receta.
| |
|
|
ebolo | |
|
Re: Excel - 2007-09-03 19:34 - Respuesta 4
Pues a eso es lo que te he dirigido en el post anterior. ¿La historia es que si sabes adaptar el código que hay puesto ahí?.
Cómo me da que no, te lo voy a volver a poner para tú caso.
Suponemos que el dato a buscar se halla en la columna 'A'.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Dim objWorkBook As Object, rutalibro As String
Dim xls As Object
rutalibro = "rutaprecios.xls"
Set xls = CreateObject("Excel.Application")
'Abrimos libro de excel
Set objWorkBook = xls.Workbooks.Open(rutalibro)
With objWorkBook.Worksheets("Hoja2")
'En la siguiente línea se busca la puesto en la columna 'A', entre el rango a1:a500.
Set c = .Range("a1:a500").Find(Target, LookIn:=xlValues)
If Not c Is Nothing Then
'suponemos que es en la columna 'D' donde queremos meter el dato buscado.
'y es en la columna 'D' donde está el precio a buscar.
'He puesto en la Hoja5 dónde vas metiendo los datos, pon la que deba ser.
Worksheets("Hoja5").Range("D" & Target.Row) = .Range("B" & c.Row)
End If
End With
'Cerramos objeto
objWorkBook.Close
'liberamos memoria
Set objWorkBook = Nothing
Set xls = Nothing
End If
End Sub
Este código lo debes de introducir en el editor de Microsoft Visual Basic. Para ello ves a Herramientas - Macro - Editor Visual Basic.
DEbes de elegir la Hoja en la que quieras poner los códigos. Mira en VER- Explorador de PRoyectos; te aparecerá una ventana lateral, dónde te muestra las hojas del libro; escoge la hoja en la que tengas los códigos de los artículos.
Lo mejor que copies y peges el código.
Pruébalo y coméntame si te funciona.
Saludos.
| |
|
|
|