Excel - Copiar filas condicionalmente

   
Vista:

Copiar filas condicionalmente

Publicado por AndresG andressguzman@yahoo.es (4 intervenciones) el 13/07/2011 18:27:40
Necesito saber si en Excel, de una "HojaX", en la cual tengo ciertos datos en fila, puedo copiarlos, siempre y cuando cumplan cierta condición, a otra "HojaY"; es decir como una sublista de productos de una lista maestra de productos. Gracias de antemano.
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

Copiar filas condicionalmente

Publicado por Enrique54 (90 intervenciones) el 13/07/2011 22:23:05
Ya que tu lo describes como una base de datos
porque no usas la opción avanzada de filtro
para seleccionar los que quieres?
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

Copiar filas condicionalmente

Publicado por AndresG (4 intervenciones) el 13/07/2011 22:26:49
Sin usar filtros, pues quiero que sea una tabla "limpia"; como si hubiera copiado solo las filas que son de mi interes y tenerlos en una nueva hoja.
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 Gonzalo

Copiar filas condicionalmente

Publicado por Gonzalo (70 intervenciones) el 19/07/2011 17:30:55
Hola AndresG:

Utilizando macros es bastante fácil hacer lo que tu quieres.
Te pido el favor de mencionar los siguientes datos con el fin de poder brindarte una ayuda:

- Las condiciones que necesita tener la fila.
- En que fila se arranca en la "HojaX"??
- Hay algún dato precargado en la "HojaY"??

Espero tu respuesta...

Saludos,

Gonzalo

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

Copiar filas condicionalmente

Publicado por andres andressguzman@yahoo.es (4 intervenciones) el 21/07/2011 05:11:45
Gracias de antemano, los tres casos son bastante interesantes, debido a que antes ya me "choque" con alguna de estas tres situaciones. Si no es mucho molestarte, seria posible una ejemplo con cada uno o uno en el que se emplee las tres situaciones.
De todas formas dejo un pequeño ejemplo de cual mas o menos es la idea.

HOJA X:

ITEM A 2 $us ACEPTADO
ITEM B 4 $us PENDIENTE
ITEM C 3 $us RECHAZADO
ITEM D 2 $us ACEPTADO
ITEM E 2 $us ACEPTADO
ITEM F 4 $us PENDIENTE
ITEM G 6 $us RECHAZADO
ITEM H 2 $us ACEPTADO
ITEM I 4 $us ACEPTADO
ITEM J 3 $us PENDIENTE
ITEM K 2 $us RECHAZADO
ITEM L 2 $us ACEPTADO

Se tendria la siguiente hoja como resultado:

HOJA Y:

ITEM A 2 $us ACEPTADO
ITEM D 4 $us ACEPTADO
ITEM E 3 $us ACEPTADO
ITEM H 2 $us ACEPTADO
ITEM K 2 $us RECHAZADO
ITEM L 2 $us ACEPTADO

Pero aqui entraria quiza un tercer caso, tomando en cuenta nada mas los que han sido "ACEPTADOS"; por tanto quedaria igual, pero sin el ITEM K que esta rechazado.
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 Gonzalo

Copiar filas condicionalmente

Publicado por Gonzalo guliquin03@yahoo.com.ar (70 intervenciones) el 21/07/2011 15:40:53
Hola Andres:
Probando con los datos que brindaste pude lograr lo siguiente.
Sobreentiendo que sabrás algo de macros para saber como pegar los códigos, en caso contrario no dudes en preguntarme como hacerlo.
Tienes que pegar en siguiente código en la HojaY:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Worksheet_Change(ByVal Target As Range)
 
    'E1 es donde establecí que hay que poner el estado a filtrar
 
    If Target.Count > 1 Then Exit Sub
 
    If Target.Cells = Range("E1") Then
 
        EsTaDo = Range("E1").Value
 
        'Esto se va a ejectuar en cada cambio que hagas en E1
 
        Call ControlEstado
 
        Else
 
    End If
 
End Sub


Y el siguiente código en un Módulo nuevo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public EsTaDo As String
 
Sub ControlEstado()
 
    ' Suponiendo que en la HojaX los datos comiencen a partir de la fila 2 _
        donde la fila 1 es la de títulos y, además, los datos sobre el estado _
        están en la columna D; y en la HojaY las columnas ocupan el mismo _
        espacio que en la HojaX, entonces el siguiente código va a funcionar _
        perfecto. De lo contrario, deberías ir modificandolo acorde a la necesidad _
        de tu proyecto
 
    If EsTaDo <> Empty Then
 
        Columns("A:D").Select
        Selection.Clear
        Sheets("HojaX").Select
        Range("A1:D1").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=4, Criteria1:=EsTaDo
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Sheets("HojaY").Select
        Range("A1").Select
        ActiveSheet.Paste
        Sheets("HojaX").Select
        Range("A1:D1").Select
        Selection.AutoFilter
        Sheets("HojaY").Select
        Range("E1").Select
 
    End If
 
End Sub


Te comento que no entendí muy bien la parte donde hacés mención a las tres situaciones (creo que será por ACEPTADO/RECHAZADO/PENDIENTE). Si este es el caso, el estado que escribas en la celda E1 de la HojaY va a traerte el resultado correspondiente de la HojaX y pegarlo en la HojaY.
Cualquier duda comentame.
Saludos,

Gonzalo
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

Copiar filas condicionalmente

Publicado por AndresG (4 intervenciones) el 28/07/2011 02:20:58
Gracias Gonzalo por la ayuda brindada; notaras que soy novato en relación a Excel, pero sediento de aprender; asi que recurro a tu ayuda.

Andres G.
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