Excel - Agregar archivo

   
Vista:
Imágen de perfil de Mario

Agregar archivo

Publicado por Mario marodrivero@yahoo.es (9 intervenciones) el 03/04/2016 20:34:49
Quiero haceros una consulta sobre unas tablas de excel, pero necesito añadir la tabla excel en la consulta porque solo con texto no me puedo hacer entender. ¿como puedo añadir una tabla de excel?
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 Andres Leonardo

Agregar archivo

Publicado por Andres Leonardo (483 intervenciones) el 03/04/2016 21:28:01
Seria importante uin ejemplo ... de verdad que no entendi.
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

Agregar archivo

Publicado por Mario (9 intervenciones) el 04/04/2016 00:07:34
Es que eso es lo quiero: incluir un ejemplo para poder hacer mi consulta, pero no sé como puedo incluir aqui unas tablas de excel.
Gracias.
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 wordexperto.com

Agregar archivo

Publicado por wordexperto.com (488 intervenciones) el 04/04/2016 08:15:43
Hola Mario:
Debes comprimirlo, con Win Rare, por ejemplo, y subir el archivo comprimido.
http://wordexperto.com/
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

Agregar archivo

Publicado por Mario (9 intervenciones) el 04/04/2016 14:59:02
El tema es que tengo una base de datos en excel con la configuración que se ve en Hoja1 y quisiera modificarla para ponerla en forma de tabla, es decir, como está en el ejemplode Hoja2. Solo se me ocurre hacerlo con copiar y trasponer, peero eso tendrías que hacerlo registro por registro y eso va a ser bastante difícil por la gran cantidad de información que hay. ¿no habría alguna forma más general de hacerlo?. Gracias
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 Andres Leonardo

Agregar archivo

Publicado por Andres Leonardo (483 intervenciones) el 04/04/2016 16:00:58
Amigo si las posiciones no cambian... claro que se podria haciendo una macro y podrian ser miles siempre y cuando

Esta estructura no cambie
1
2
3
4
a	Nombre	Angel
	apellido	Ruiz
	edad	25
	prof.	profesor
Ni esta

1
2
3
4
5
Nombre	Apellido	Edad	Profesión
a	Angel	Ruiz	25	profesor
b	Pepita	Jiménez	34	diseñadora
c	Juan	Casas	45	Moolinero
d	Luis	López	23	pintor


SAludos
Andres
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

Agregar archivo

Publicado por Mario (9 intervenciones) el 04/04/2016 20:27:39
En efecto, la estructura es siempre la misma, pero en este caso no sé como programar esa macro.
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 wordexperto.com

Agregar archivo

Publicado por wordexperto.com (488 intervenciones) el 04/04/2016 21:04:54
Hola Mario:
Si no tienes conocimientos de macros, para hacerlo como te indica Andrés, puedes hacerlo también con rangos de consolidación múltiple, utilizando Power query, si tienes Power pivot, o más sencillo, añadiendo a la Barra de herramientas rápida el viejo asistente para tablas dinámicas.
En este blog te explican cómo hacerlo paso a paso. No tengo nada que ver con ese blog. Es el primero que he encontrado en el buscador.
http://www.excelavanzado.com/2010/10/tablas-dinamicas-inversas.html
http://wordexperto.com/
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 Andres Leonardo

Agregar archivo

Publicado por Andres Leonardo (483 intervenciones) el 04/04/2016 21:17:18
Mario


Con los datos que me diste procedi a realizar la macro en realidad este es el codigo nada mas espero te ayude en tu labor ... estudiala y cualquier duda me avisas. estare presto ayudar si puedo .

**Adicional te adjunto el libro.

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
34
35
Sub GeneraTabla()
'
' GeneraTabla Macro
' CopiarData
'
' Acceso directo: CTRL+q
'Inicio en B2
Dim C As Integer
Dim l, n, a, e, p As String
C = 1
H = 2
salir = False
While salir = False
    Sheets("Hoja1").Select
    Debug.Print Range("B" & C).Value
    If Range("B" & C).Value <> "" Then
        l = Range("B" & C).Value
        n = Range("D" & C).Value
        a = Range("D" & C + 1).Value
        e = Range("D" & C + 2).Value
        p = Range("D" & C + 3).Value
        Sheets("Hoja2").Select
        Range("A" & H).Value = l
        Range("B" & H).Value = n
        Range("C" & H).Value = a
        Range("D" & H).Value = e
        Range("E" & H).Value = p
        C = C + 4
        H = H + 1
    Else
        salir = True
    End If
Wend
    MsgBox "Proceso Terminado"
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
Imágen de perfil de Andres Leonardo

Agregar archivo

Publicado por Andres Leonardo (483 intervenciones) el 04/04/2016 21:34:28
Optimizando lineas


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
Sub GeneraTabla()
'
' GeneraTabla Macro
' CopiarData
'
' Acceso directo: CTRL+q
'Inicio en B2
Dim C As Integer
C = 1
H = 2
salir = False
While salir = False
    Sheets("Hoja1").Select
    If Range("B" & C).Value <> "" Then
        Sheets("Hoja2").Range("A" & H).Value = Range("B" & C).Value
        Sheets("Hoja2").Range("B" & H).Value = Range("D" & C).Value
        Sheets("Hoja2").Range("C" & H).Value = Range("D" & C + 1).Value
        Sheets("Hoja2").Range("D" & H).Value = Range("D" & C + 2).Value
        Sheets("Hoja2").Range("E" & H).Value = Range("D" & C + 3).Value
        C = C + 4
        H = H + 1
    Else
        salir = True
    End If
Wend
    Sheets("Hoja2").Select
    MsgBox "Proceso Terminado"
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
1
Comentar
Imágen de perfil de Mario

Agregar archivo

Publicado por Mario (9 intervenciones) el 05/04/2016 00:35:50
Gracias, Andrés. Lo he aplicado en el ajemplo que te envié y funciona perfectamente, así que lo utilizaré en el archivo grande. Muchas gracias.
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 Andres Leonardo

Agregar archivo

Publicado por Andres Leonardo (483 intervenciones) el 05/04/2016 00:40:15
Q bueno que haya servido
Me olvide decir que se llama a la macro con Ctrl + Q
Saludos
Andres
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

Agregar archivo

Publicado por agustin (149 intervenciones) el 05/04/2016 10:34:47
Creo que se puede optimizar un pelin mas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub GeneraTabla()
'
' GeneraTabla Macro
' CopiarData
'
' Acceso directo: CTRL+q
'Inicio en B2
Dim C, H As Integer
C = 1
H = 2
Sheets("Hoja2").Select
While Sheets("Hoja1").Range("B" & C).Value <> ""
        Range("A" & H).Value = Sheets("Hoja1").Range("B" & C).Value
        Range("B" & H).Value = Sheets("Hoja1").Range("D" & C).Value
        Range("C" & H).Value = Sheets("Hoja1").Range("D" & C + 1).Value
        Range("D" & H).Value = Sheets("Hoja1").Range("D" & C + 2).Value
        Range("E" & H).Value = Sheets("Hoja1").Range("D" & C + 3).Value
        C = C + 4
        H = H + 1
Wend
    MsgBox "Proceso Terminado"
End Sub
Nos libramos de un condicional y de una variable y declaro H ya que si no se hace se creará del tipo Variant y no es lo que deseamos. Además nos libramos de tener que seleccionar dos veces una hoja.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Andres Leonardo

Agregar archivo

Publicado por Andres Leonardo (483 intervenciones) el 05/04/2016 15:59:31
Excelente aporte Agustin claro eso es lo mejor optimizar a fin de que sea lo mas rapida y eficiente posible .. gracias

Mario espero que te ayude esta ultima version

Saludos
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

Agregar archivo

Publicado por Mario (9 intervenciones) el 06/04/2016 00:23:44
Gracias de nuevo
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