Articulos de una hoja a otra

25/03/2005 - 21:32 por Oretrac | Informe spam
Haber si podeis ayudarme...

Tengo que escribir en un hoja los articulos que recibo diariamente segun el
soiguiente formato:

FECHA NUM. ORDEN ORIGEN NUMERO DE ORIGEN NOMBRE PRECIO
dia actual 1 A 2
" 2 B
3
" 3 A
1
" 4 C
5
etc

y en otra hoja solo los articulos de un determinado origen supongamos en
este caso los que su origen es A
ordenados en este caso por numero de origen.

Mi pregunta es la siguiente; como hacer para que segun escriba los articulos
en la primera hoja se escriban solo los de origen A a su vez en la segunda
hoja y ordenados por numero de origen sin necesidad de teclear los articulos
dos veces

gracias por anticipado

Preguntas similare

Leer las respuestas

#1 KL
26/03/2005 - 01:09 | Informe spam
Hola Oretrac,

Suponiendo que tienes tu base de datos en la Hoja1 y quieres extraer los
registros con el origen A a la Hoja2, prueba lo siguiente:

1) En la celda [A1] de la Hoja2 pon ORIGEN (exactamente igual q el titulo de
la columna de la base de datos que contiene los valores de origen)
2) En la celda [A2] de la Hoja2 pon A
3) Estando en la Hoja2 ve al menu Datos>Filtro>Filtro Avanzado
4) Marca la opcion "Copiar a otro sitio"
5) Mete el cursor dentro de la 1a cailla, ve a la Hoja1 y selecciona toda la
base de datos
6) Mete el cursor dentro de la 2a casilla y selecciona las celdas [A1:A2] de
la Hoja2
7) Mete el cursor dentro de la 3a casilla y selecciona la celda [A4] de la
Hoja2
8) Pulsa Aceptar
9) Usa el menu Datos>Ordenar para ordenar la extraccion.

Tambien podrias automatizar el proceso mediante macros:

Basandonos en las mismas hipotesis que antes
1) En la celda [A1] de la Hoja2 pon ORIGEN (exactamente igual q el titulo de
la columna de la base de datos que contiene los valores de origen)
2) Copia el codigo que te pongo a continuacion al modulo VBA de la Hoja2.
Para ello:
- haz clic derecho sobre el nombre de la hoja que aparece en una de las
pestañas en la parte baja a la izquierda de la ventana de Excel
- del menu contextual q aparecera a continuacion elige "Ver Codigo" y se
abrira el Editor VBA
- pega el codigo en la ventana mas grande a mano derecha
- pulsa Alt+F11 para volver a la hoja
3) Escribe A en la celda [A2] de la Hoja2

Importante:
1) Si la Hoja1 en realidad tiene otro nombre, tendras q sustituir "Hoja1"
por el nombre real dentro del codigo VBA
2) Para que el macro funcione, los macros deben estar habilitados.
3) Puedes cambiar los criterios de filtrado facilmente. Solo tienes que
poner el titulo de columna correspondiente en la celda [A1] y el valor
deseado en la celda [A2] de la Hoja2

Saludos,
KL

'-Inicio Codigo
Private Sub Worksheet_Change(ByVal Target As Range)
With Me
If Intersect(Target, .Range("A2")) Is Nothing Then Exit Sub
.Range("A4").CurrentRegion.ClearContents
ThisWorkbook.Sheets("Hoja1").UsedRange.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=.Range("A1:A2"), _
CopyToRange:=.Range("A4"), _
Unique:=False
.Range("A4").Sort Key1:=Range("D4"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
End Sub
'-Fin Codigo
Respuesta Responder a este mensaje
#2 KL
26/03/2005 - 12:37 | Informe spam
Hola de nuevo,

He pensado q de hecho podrias obtener mas flexibilidad creando un rango de
criterios mas grande en la Hoja2. Por ejemplo:

[A] [B] [C] [D]
[E] [F]
[1] Fecha | Nun Orden | Origen | Num de Origen | Nombre | Precio |

[2] | | A | <3 |
| |

[3] | | "" | |
| |

[4] | | "" | |
| |



Podrias tener mas filas, pero para un ejemplo creo q 3 son suficientes.

El hecho de tener mas de una fila te permite tener multiples condiciones
para el mismo campo. Se pueden utilizar valores numericos logicos o texto,
los operadores matematicos como <, >, >=, <=, <> y ademas los "wildcards":
*, ?, ~. Recuerda tambien que una celda vacia en un campo significa que esta
permitido todo, por lo tanto si solo quieres introducir condiciones en
algunas filas (vamos, no en todas las filas posibles) tendras q cancelar
las otras filas introduciendo algun criterio imposible en uno de los campos
(por ejemplo, tal como lo he hecho yo en la tabla de arriba introduciendo ""
para el campo Origen). En definitiva es cuestion de jugar un poco con los
criterios y cogerles el manejo.



Luego digamos tu extraccion ya empezaria en la celda [A6] de la Hoja2, de
ahi el nuevo codigo mas abajo. Tambien aqui te pongo un fichero ejemplo por
un par de dias: http://www.telefonica.net/web/kl/VB...Filter.xls



Saludos,

KL



Private Sub Worksheet_Change(ByVal Target As Range)
With Me
If Intersect(Target, .Range("A2:F4")) Is Nothing Then _
Exit Sub
.Range("A6").CurrentRegion.ClearContents
ThisWorkbook.Sheets("Sheet1").UsedRange.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=.Range("A1:F4"), _
CopyToRange:=.Range("A6"), _
Unique:=False
.Range("A6").Sort Key1:=Range("D6"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
End Sub
Respuesta Responder a este mensaje
#3 Oretrac
26/03/2005 - 15:10 | Informe spam
muchas grcias KL
lo probare en cuanto pueda ..

"KL" escribió en el mensaje
news:%
Hola Oretrac,

Suponiendo que tienes tu base de datos en la Hoja1 y quieres extraer los
registros con el origen A a la Hoja2, prueba lo siguiente:

1) En la celda [A1] de la Hoja2 pon ORIGEN (exactamente igual q el titulo


de
la columna de la base de datos que contiene los valores de origen)
2) En la celda [A2] de la Hoja2 pon A
3) Estando en la Hoja2 ve al menu Datos>Filtro>Filtro Avanzado
4) Marca la opcion "Copiar a otro sitio"
5) Mete el cursor dentro de la 1a cailla, ve a la Hoja1 y selecciona toda


la
base de datos
6) Mete el cursor dentro de la 2a casilla y selecciona las celdas [A1:A2]


de
la Hoja2
7) Mete el cursor dentro de la 3a casilla y selecciona la celda [A4] de la
Hoja2
8) Pulsa Aceptar
9) Usa el menu Datos>Ordenar para ordenar la extraccion.

Tambien podrias automatizar el proceso mediante macros:

Basandonos en las mismas hipotesis que antes
1) En la celda [A1] de la Hoja2 pon ORIGEN (exactamente igual q el titulo


de
la columna de la base de datos que contiene los valores de origen)
2) Copia el codigo que te pongo a continuacion al modulo VBA de la Hoja2.
Para ello:
- haz clic derecho sobre el nombre de la hoja que aparece en una de las
pestañas en la parte baja a la izquierda de la ventana de Excel
- del menu contextual q aparecera a continuacion elige "Ver Codigo" y se
abrira el Editor VBA
- pega el codigo en la ventana mas grande a mano derecha
- pulsa Alt+F11 para volver a la hoja
3) Escribe A en la celda [A2] de la Hoja2

Importante:
1) Si la Hoja1 en realidad tiene otro nombre, tendras q sustituir "Hoja1"
por el nombre real dentro del codigo VBA
2) Para que el macro funcione, los macros deben estar habilitados.
3) Puedes cambiar los criterios de filtrado facilmente. Solo tienes que
poner el titulo de columna correspondiente en la celda [A1] y el valor
deseado en la celda [A2] de la Hoja2

Saludos,
KL

'-Inicio Codigo
Private Sub Worksheet_Change(ByVal Target As Range)
With Me
If Intersect(Target, .Range("A2")) Is Nothing Then Exit Sub
.Range("A4").CurrentRegion.ClearContents
ThisWorkbook.Sheets("Hoja1").UsedRange.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=.Range("A1:A2"), _
CopyToRange:=.Range("A4"), _
Unique:=False
.Range("A4").Sort Key1:=Range("D4"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
End Sub
'-Fin Codigo


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