Excel - Crear resumen con macro

 
Vista:

Crear resumen con macro

Publicado por Carlos (3 intervenciones) el 07/10/2011 00:36:26
Hola, mi problemilla es el siguiente: dispongo de una hoja de excel con datos de operarios que quiero resumir en otra hoja; los datos son los siguientes:
A C E
Habitación Operario Horario salida
120 Manuel 6:00
120 Rodrigo 6:15
123 José 7:00
125 Samuel 6:00
etc....


Bien lo que necesito es que con una macro me salgan los datos ordenados de la siguiente manera:


B

6:00
120 Manuel
125 Samuel
6:15
120 Rodrigo
7:00
123 José
etc........

He probado a utilizar las funciones que trae Excel y sólo puedo realizar un trozo de lo que necesito; también he intentado usar la grabadora de macros pero, debido a mi conocimiento limitado del vb, el resultado no fue el esperado, de ahí que os pida mi ayuda.
Saludos y gracias de antemano por vuestra atención
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

Crear resumen con macro

Publicado por JuanC (1237 intervenciones) el 07/10/2011 03:00:54
dicho de otra manera necesitas ordenar por hora y agrupar los datos?
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

Crear resumen con macro

Publicado por Carlos (3 intervenciones) el 07/10/2011 22:11:39
Correcto, necesito que en el resumen aparezcan agrupados por hora todos los operarios que salen a la misma hora a lo largo del día; son alradedor de 120 operarios y que salen a diferentes horas a lo largo de la mañana principalmente en periodos de 15 minutos, o sea, 6:00, 6:15, 6:30, y así sucesivamente;gracias por contestar tan pronto
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

Crear resumen con macro

Publicado por Carlos (4 intervenciones) el 08/10/2011 00:40:59
Si tenéis alguna duda puedo enviar el archivo
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 JuanC

Crear resumen con macro

Publicado por JuanC (1237 intervenciones) el 08/10/2011 14:39:01
ésto es lo que salió por ahora...
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Option Explicit
 
'//By JuanC - 08 Oct. 2011
 
Type tt
     sHora As String
     col As Collection
End Type
 
Sub test()
Dim rng As Range, cell As Range
Dim v() As tt, flg As Boolean
Dim n%, i%, h%, m%, sHora$, k%, p%
Application.ScreenUpdating = False
Set rng = Hoja3.Range("J6:J125")
n = -1
For Each cell In rng
    If VBA.Trim(cell.Text) <> "" Then
       flg = False
       For i = 0 To n
           If v(i).sHora = cell.Text Then
              flg = True
              v(i).col.Add cell.Offset(, -8).Value & "@" & cell.Offset(, -4).Value
              Exit For
           End If
       Next
       If Not flg Then
          n = n + 1
          ReDim Preserve v(n)
          v(n).sHora = cell.Text
          Set v(n).col = New Collection
          v(n).col.Add cell.Offset(, -8).Value & "@" & cell.Offset(, -4).Value
       End If
    End If
Next
 
Hoja5.Cells.Clear
Set rng = Hoja5.Range("B2")
p = 0
For h = 0 To 23
    For m = 0 To 45 Step 15
        sHora = h & ":" & Format(m, "00")
        rng.Offset(p, 0).NumberFormat = "@"
        rng.Offset(p, 0).Value = sHora
        flg = False
        For i = 0 To n
            If v(i).sHora = sHora Then
               If v(i).col.Count > 0 Then
                  flg = True
                  p = p + 1
               End If
               For k = 1 To v(i).col.Count
                   rng.Offset(p, 0).Value = VBA.Split(v(i).col.Item(k), "@")(0)
                   rng.Offset(p, 1).Value = VBA.Split(v(i).col.Item(k), "@")(1)
                   p = p + 1
               Next
               Exit For
            End If
        Next
        If Not flg Then rng.Offset(p, 0).Value = ""
    Next
Next
 
Erase v
Application.ScreenUpdating = True
End Sub


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

Crear resumen con macro

Publicado por Carlos (4 intervenciones) el 10/10/2011 17:56:48
Hola, trabajo incríble el que has hecho, sólo he podido echarle un vistazo por encima, creo que es lo que necesitaba... tan pronto pueda lo miraré con calma y ya te diré, aunque de todos modos, eres un hacha... gracias por todo... 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

Crear resumen con macro

Publicado por Carlos (4 intervenciones) el 13/10/2011 17:44:20
Hola, ya he comprobado la macro y es exactamente lo que necesitaba, con unos cuantos ajustes en cuanto columnas en negrita y colocación del informe en la hoja correspondiente, está perfecto... me queda claro que con mis conocimientos no lo habría logrado... gracias de verdad por el excelente trabajo... Atentamente... un saludo
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